这个if语句不起作用

时间:2010-08-27 09:06:19

标签: jquery

在此播放:http://jsbin.com/ocicu4/4/edit

简单的手风琴,我只希望一次打开一个部分。

我认为if语句可行,但事实并非如此。

        // Clicks on h3 show .sectionContent
        $('h3.sectionHeading').click(function() {
            if ($('h3.sectionHeading').next().is('.open')) {
                // Do nothing
            } else {
                // Find the exsisting div.open remove class and close it
                $('div.open').removeClass('open').animate(
                    {'height':'toggle'}, 'fast', 'linear'
                );
                // Make div next to h3 open and add class
                $(this).next().addClass('open').animate(
                    {'height':'toggle'}, 'slow', 'linear'
                );
            }
        });

帮助赞赏:)

1 个答案:

答案 0 :(得分:2)

我可能不明白你想要做什么,但改变了界限:

if ($('h3.sectionHeading').next().is('.open')) { // etc

要:

if ($(this).next().is('.open')) { // etc

将触发第一个if语句。当您使用选择器h3.sectionHeading时,next()对象将始终相同。我假设你想要当前选择后的下一个元素?

工作示例here