从我在docs中读到的内容,end()将返回初始对象。在我的情况下,这应该返回$(this)
,对吗?
$('.el').delegate('a.off', 'click', function(){
$(this).parents('div').find('a').removeClass('active').end().addClass('active');
...
});
但它似乎不起作用。我没有在原始元素(链接addClass('active')
)上应用a.off
。
答案 0 :(得分:4)
不是初始对象,以前选中的元素,在这种情况下为.parents('div')
。将其视为堆栈,每次更改元素选择时,它们都会添加到堆栈中,.end()
会删除堆栈的最后一个条目。您必须两次致电.end()
。
但您可以重新排列方法调用并使用not
过滤掉特定元素:
$(this)
.addClass('active')
.parents('div')
.find('a').not(this)
.removeClass('active');
答案 1 :(得分:1)