javascript - 在 v-for 列表项中显示和隐藏 div (Vue.js 2)

标签 javascript html list vue.js vuejs2

我有一个 v-for 循环,当单击该循环中的项目时,我想隐藏 div#one 并显示 div#two。然后单击 div#two 中的按钮再次隐藏和显示 div#one。仅针对该列表项。

模板:

<div v-for="slider in slideritems">
    <div v-if="!showEdit" @click="openEditor(slider)">
        Normal list item, click to show edit options
    </div>
    <div v-if="showEdit">
        <div @click="closeEditor(slider)">Close</div>
        Edit options (if selected)
    </div>
</div>

脚本:

export default {
    methods: {
        openEditor(slider) {
            slider.showEdit = true
        },
        closeEditor(slider) {
            slider.showEdit = false
        }
    }
}

最佳答案

由于您的方法正在翻转 slider 对象的 showEdit 成员,我认为您希望将 v-if 绑定(bind)到 slider.showEdit,不仅仅是showEdit:

<div v-for="slider in slideritems">
    <div v-if="!slider.showEdit" @click="openEditor(slider)">
        Normal list item, click to show edit options
    </div>
    <div v-if="slider.showEdit">
        <div @click="closeEditor(slider)">Close</div>
        Edit options (if selected)
    </div>
</div>

这是一个有效的 jsFiddle:https://jsfiddle.net/psteele/wn1npgqu/

关于javascript - 在 v-for 列表项中显示和隐藏 div (Vue.js 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42176432/

相关文章:

javascript - 即 11 + angularjs 没有从 angular.element ("#idName"中找到范围)

javascript - 如何使用不可变对象(immutable对象)替代观察者模式

javascript - 双击 Bootstrap 表中填充 JSON 的行

javascript - 我希望我的 Canvas 对象出现在弹出窗口中

c# - 列表、排序列表和数组列表之间有什么区别? (C#)

javascript - 就我而言,如何在运行时填充数据?

java - C++、Java 和 JavaScript 异常处理之间有什么区别?

html - 平铺六边形

python - 将一个列表中的两项添加到Python中的新列表

java - 方法 Collections.copy 的编译器错误