javascript - 使用 Vue JS 和 for 循环设置事件状态

标签 javascript jquery html twitter-bootstrap vue.js

我在 Vue 中有一个字符串列表,我使用 v-for 通过 Bootstrap 在“list-group”中列出所有这些字符串。我想在单击其中一个项目时设置“事件”状态,但我找不到使用 for 循环来标识列表中特定项目的方法。

HTML -

<div class="list-group" id="ServersList">
<a href="#" class="list-group-item" v-for="Server in Servers">{{Server.text}}</a>
</div> 

VueJS -

var ServersList = new Vue({
    el: '#ServersList',
    data: {
        Servers: [
            { text: '1' },
            { text: '2' },
            { text: '3' },
            { text: '4' },
            { text: '5' },
            { text: '6' }
})

最佳答案

您可以在服务器中使用v-for="(Server, index)"。 Index 将存储每个元素的当前索引。这样您就可以像这样调用定义的方法:

在您的 View 模型定义中添加以下内容:

data: {
  currentIndex: 0
},
methods: {
  myClick(index) {
    this.currentIndex = index
  }
}

修改模板中的 a 标签:

<a href="#" 
  v-for="(server, index) in Servers" 
  :class="{yourActiveClass: currentIndex === index, yourInactiveClass: currentIndex !== index}" 
  @click="myClick(index)">

关于javascript - 使用 Vue JS 和 for 循环设置事件状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45274942/

相关文章:

javascript - 从 3.x 升级到 PHP 5.5 后,它似乎试图解析我的 JavaScript 注释(嵌入 PHP 包含文件中的脚本标记中)

javascript - 如果未选中一组其他复选框,则自动选中一个复选框

jquery - 在 Fancybox 内输入

html - 如何并排放置两个 anchor

javascript - 访问键与热键

javascript - 如何替换或更改 WordPress 模板上的单词?

javascript - 显示/隐藏适用于 JQuery 1.3.2,但不适用于 JQuery 1.4

javascript - 使用 javascript 在选定的树节点值上填充 gridview

jquery - 如何将 iframe 中的图像复制到文本区域?

javascript - 稍后附加到 DOM 的图像的加载事件