Vuejs得到一个事件正在调用的元素?

时间:2015-10-16 14:47:51

标签: javascript jquery json vue.js

我有多个列表项,我想在点击它们时切换活动类。

<ul class="list-body">
    <li v-on="click: setFilter('style', 'pils')" v-class="active: isActive">Pils</li>
    <li>Dubbel</li>
    <li>Tripel</li>
    <li v-on="click: setFilter('style', 'Quadrupel')">Quadrupel</li>
    <li>Wit</li>
</ul>

我已经有一个setFilter点击功能,我可以在其中添加额外的功能来激活课程onClick

setFilter: function(facet, value) {
    // Facet for style of beer(search filter)
    this.helper.addDisjunctiveFacetRefinement(facet, value).search();
},

我的问题是如何选择点击的特定li元素并使用setFilter方法调用?

我想为已点击(或未点击)的每个false元素设置活动类trueli的变量。

1 个答案:

答案 0 :(得分:15)

您可以直接在函数中传递事件和事件目标。 目标是您单击的元素。

HTML:

<ul id="demo">
    <li v-on="click: onClick">Trigger a handler</li>
    <li v-on="click: n++">Trigger an expression</li>
</ul>

JS:

var vue = new Vue({
  el: '#demo',
  data: {},
  methods: {
    onClick: function (e) {
      var clickedElement = e.target;
    }
  }
})

使用您的元素,您可以做您想做的事。 例如,如果您使用jQuery:

$(clickedElement).siblings().removeClass('active');
$(clickedElement).addClass('active');