v-for如何为一个列表里的某个项单独绑定事件?

例如,有下列代码:
我想为循环出来的第二个a标签 单独 绑定事件该如何做(例如给最后渲染出来的第二个a标签绑定事件)?
注意:不是给所有循环出来的项目都绑定事件,已经翻阅过百度,谷歌,都找不到答案

<li v-for="link in links">

<a :href="link.href" :title="link.title">{{link.info}}</a>

</li>
....
links: [{

  href:"some1.html",
  title:"1",
  info:"1"
},{
  href: "some2.html",
  title: "2",
  info: "2"
},{
  href: "some3.html",
   title: "3",
   info: "3"
  }]
阅读 4.5k
2 个回答

元素写两次,用 v-if/v-else
可以参考这个 jsfiddle

  <ol>
    <li v-for="(item, index) in list">
      <button v-if="index == 1" type="button" v-on:click="alert()"> <!-- 选定第二个才绑定 -->
        {{ index }}: {{ item }}
      </button>
      <button v-else type="button">
        {{ index }}: {{ item }}
      </button>
    </li>
  </ol>
const data = ["a", "b", "c", "d", "e"];

const app = new Vue({
  el: '#app',
  data: {
    list: data
  },
  methods: {
    alert() {
      alert('test');
    }
  }
});

单独绑定没找到
可以全绑定传index。

<div v-for="(item, index) in items" v-on:click="fun(index)">
methods:{
    fun(index){
    //根据index==2做判断
    }
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题