2
vue.jsでレンダリングされたビデオポスター画像/ jpgのリストがあります。これらの画像の上にマウスを置くと、gifアニメーションに置き換えられます。私はmouseoutでimage/jpgをもう一度見たいと思う。だから私は、マウスオーバー/アウトイベントを追跡するが、期待通りにSRC属性を交換しても動作しないことができたの運賃:vue.jsはマウスオーバーでアニメーションgifをjpgに置き換えます。
<div v-for="video in videos">
<img
v-on:mouseover="mouseOver(video.id)"
v-on:mouseout="mouseOut(video.id)"
v-bind:src="mouse[video.id] === 1 ? 'images.gif' : 'images.gif'"
/>
</div>
var app4 = new Vue({
el: '#app-videomanager',
router,
data: {
mouse: {} // the id is alphanumeric
},
computed: {
videos() {
return store.state.videos; // not included in the example
}
},
methods: {
mouseOver: function(id) {
this.mouse[id] = 1;
},
mouseOut: function(id) {
this.mouse[id] = 0;
}
}
});
それマウスオーバーとマウスアウト関数内SRC属性を置き換えるために理にかなっての代わりに、あまりにも多くのロジックをコンポーネントテンプレートに入れていますか? vue.jsでDOMのこの部分をどのように操作できますか?ここで
IDがmouse' 'には存在しませんVueはあなたがそれらを設定したときに反応させません。 [Vue.set](https://vuejs.org/v2/api/#Vue-set)を参照してください。 –
IDが存在しました。私の解決策のこの部分は機能していました。 maxpajは私にとって洗練されたソリューションを提供しました。 – user3072843
'mouse:{}'と言ったように宣言した場合、その中には 'id'がありません。 –