1
これは動作します:https://jsfiddle.net/hxyv40raVueディレクティブ内で要素クラスを追加/削除/トグルできませんか?
をしかし、私はボタンイベントがトリガされるVUEディレクティブの内側にこのコードを配置し、コンソールはクラスがを除去して示しているが、時に視覚的に変化何?
ここ例です:https://jsfiddle.net/hLga2jxq
指令コードが(StackOverflowののルールをなだめるために)以下でもあります。
スタイル
.hide {
display: none;
}
HTML
<div id="app">
<button v-hide-for="'uniqueID'">toggle to show?</button>
<div class="hide" hide-name="uniqueID">
Hello! :D
</div>
</div>
JS
Vue.directive('hide-for', {
bind(button, b, vnode, oldVnode) {
console.log(b);
var elsToToggle = document.querySelectorAll(`[hide-name="${b.value}"]`);
console.log(button, b.value, `[hide-name="${b.value}"]`, elsToToggle);
button.addEventListener('click', (b) => {
console.log(button, " clicked");
elsToToggle.forEach((el) => {
console.log(el);
el.classList.toggle('hide');
})
}, false)
}
});
var app = new Vue({
name: "test",
el: '#app',
data: {}
})