ビデオが少なく、ボタン、ビデオタイトルがある「vue.js」を使用してアプリケーションを作成していますユーザーがボタンをクリックすると、関連するビデオ、タイトル、説明のみが表示されますが、他のすべてのビデオのビデオタイトルと説明は非表示になります。これを行うには2通りの方法があります: 1.すべてのビデオタイトルと説明のリストをデフォルトの表示プロパティでnoneにしてから、ディスプレイプロパティを1つのビデオタイトルとボタンクリックに関する説明のみをブロックするように変更します。 EXのために:リスト全体のデータを一度に保存してから1つずつ表示する、または1つのdivのHTMLコンテンツを変更する
onBtnClick: function(event, index) {
var videoContainer = "#videoContainer" + index;
$(videoContainer).css("display", "block);
}
.container {
display: none;
}
<div v-for="(video, index) in json._videos" id="'videoContainer'+index" class="container">
<div v-if="video.title">{{ video.title }}</div>
<div v-if="video.decription">{{ video.decription }}</div>
</div>
<div id="buttonContainer">
<button v-for="(video, index) in json._videos" id="'button'+index" v-on:click="onBtnClick($event,index)">{{ video.buttonText }}</button>
</div>
-
単一のビデオ容器を作成した後、V-HTMLディレクティブを使用して、ビデオタイトルおよび説明のHTMLコンテンツを変更することにより
- 。例の場合:
onBtnClick: function(event, index) {
getVideoTitle(index);
getVideoDescription(index);
}
getVideoTitle: function(index) {
return json._videos[index].title;
}
getVideoDescription: function(index) {
return json._videos[index].description;
}
.container {
display: none;
}
<div id="'videoContainer'+index" class="container">
<div v-if="json._videos" v-html="getVideoTitle()"></div>
<div v-if="json._videos" v-html="getVideoDescription()"></div>
</div>
<div id="buttonContainer">
<button v-for="(video, index) in json._videos" id="'button'+index" v-on:click="onBtnClick($event,index)">{{ video.buttonText }}</button>
</div>
Guysは、より良いアプローチと理由である1を教えてください?
答えをありがとう:)あなたのソリューションはvue.jsに焦点を絞っています良い)しかし、私はすべてのタイトルと説明を私はisVisible種類の属性を持っていないjsonファイルから受け取っていますが、もし私があなたのアプローチに従うなら、私はそれをjsonファイルで定義するか、 jsファイルを長すぎるようにするマウントされた関数の記述は、約30個のビデオを使用し、すべてに長い記述があるため、長すぎます。どう思いますか? –
アレクサンダーと@Saurabhオックス私はこのアプローチを使用し、あなたの提案に感謝:) –
私の評判が15未満ですので私はupvoteすることはできません。 –