我写了这个函数来使用jquery链接函数来切换下一个div的类名,但它不起作用......
$('a.back-btn,a.front-btn').click(function(e){
e.preventDefault();
$(this).toggleClass('back-btn front-btn').end()
.next().find('.models').toggleClass('rotated');
})
如果我写单独的行,那么它工作正常:
$('a.back-btn,a.front-btn').click(function(e){
e.preventDefault();
$(this).toggleClass('back-btn front-btn');
$(this).next('.models').toggleClass('rotated'); // separate line
})
我的链接功能有什么问题,如果我使用链接,它如何结束进程。我用了end(),不对吗?任何最好的澄清使用end()?
提前致谢
答案 0 :(得分:4)
如果您删除end()
,它就会有效。使用end()
仅适用于在当前jQuery链中运行了一个函数,该函数更改了您正在处理的集合。
$('a.back-btn,a.front-btn').click(function(e){
e.preventDefault();
$(this).toggleClass('back-btn front-btn').next('.models').toggleClass('rotated');
});
这是end()
的有效(但完全没有意义)用法:
$(this).next('.models').toggleClass('rotated').end().toggleClass('back-btn front-btn');
next()
方法改变了我们正在处理的jQuery元素的当前集,因此toggleClass
方法适用于下一个.models
元素。然后,我们end()
返回$(this)
,我们在其上切换rotated
类。
有关其他说明/示例,请参阅end()
documentation。
答案 1 :(得分:3)
end()
函数结束子选择
你不应该在这里使用它。
end()
会像这样使用:
$(something)
.children()
.hide()
.end() //Go back to the original something
.animate()