在模板事件中向元素添加类

时间:2017-09-28 21:31:21

标签: javascript jquery meteor

此Meteor模板代码尝试在没有不必要的调用的情况下向元素添加类。 event.currentTarget.addClass('active');无法添加课程?我做错了什么?

// inside the template events
'click #login-form-link': function (event) {
    $('#login-form-link').addClass('active'); // extra call
    event.currentTarget.addClass('active');   // cheap but did not work
 },

2 个答案:

答案 0 :(得分:2)

虽然这个问题已经得到解答,但我不禁要提到这个任务可以在不使用jQuery的情况下完成:

'click #login-form-link'(event) => {
  event.target.classList.add('active');
},

classList是支持add()remove()toggle()方法的属性,只是不同的浏览器支持:某些浏览器不支持这些方法的多个参数方法,但所有方法(不包括真正的老方法)都有基本的支持。

MDN documentation

答案 1 :(得分:0)

您需要将事件目标转换为jQuery对象

'click #login-form-link'(event) => {
    $(event.target).addClass('active');
 },

请注意,this将是您单击的元素后面的数据上下文,而不是可以添加类的DOM元素。

你不能真正摆脱额外的调用,因为你需要以某种方式获得对DOM节点的引用,$(event.target)和任何一个一样好。