此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
},
答案 0 :(得分:2)
虽然这个问题已经得到解答,但我不禁要提到这个任务可以在不使用jQuery的情况下完成:
'click #login-form-link'(event) => {
event.target.classList.add('active');
},
classList
是支持add()
,remove()
和toggle()
方法的属性,只是不同的浏览器支持:某些浏览器不支持这些方法的多个参数方法,但所有方法(不包括真正的老方法)都有基本的支持。
答案 1 :(得分:0)
您需要将事件目标转换为jQuery对象
'click #login-form-link'(event) => {
$(event.target).addClass('active');
},
请注意,this
将是您单击的元素后面的数据上下文,而不是可以添加类的DOM元素。
你不能真正摆脱额外的调用,因为你需要以某种方式获得对DOM节点的引用,$(event.target)
和任何一个一样好。