嘿大家我试图在使用jquery事件委托方法点击的目标元素中添加一个类,但是' $(this.element)'未定义。这是为什么?谢谢你们!
tabWrapper.on('click', '.services-tabs', function(event) {
$('.services-tabs').removeClass('selected');
$(this.element).addClass('selected');
console.log(this.element);
});
答案 0 :(得分:1)
当jQuery调用处理程序时,
this
关键字是对该处理程序的引用 事件交付的元素;对于直接绑定的事件 这是附加事件和委托事件的元素 事件这是一个匹配selector
的元素。 (请注意,这可能不是 如果事件来自后代,则等于event.target
element。)从元素创建一个jQuery对象,以便它可以 与jQuery方法一起使用时,请使用$( this )
。
当然,没有什么可以阻止你执行$(this.element)
但除非this
有一个名为element
的属性恰好是一个DOM节点(或带有HTML的字符串),否则它将无效)。
答案 1 :(得分:0)
我认为它应该是$(this)而不是你在这里所拥有的:
$(this.element)
试试这个:
tabWrapper.on('click', '.services-tabs', function(event) {
$('.services-tabs').removeClass('selected');
$(this).addClass('selected');
console.log(this.element);
});
编辑:我看到@RoryMcCrossan的评论已经回答了这个问题。