jquery链接函数问题

时间:2012-02-20 15:21:40

标签: javascript jquery

我写了这个函数来使用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()?

提前致谢

2 个答案:

答案 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()