jQuery函数没有预期的工作

时间:2011-12-02 08:37:11

标签: jquery

JQuery 代码,用于显示和隐藏我的html页面的内容。当我点击显示产品链接时,产品的所有名称都在下面,当点击隐藏产品链接时,它会隐藏产品。它按预期工作但在 IE6.0 当我点击隐藏产品链接时它隐藏了复选框,但在 mozilla 它是预期

$(document.ready(function()){
    toggleNodes=function(node,action){
        var $content=$('.node-content', node);
        var $symbol=$('.node-label>a>.ui-symbol-green',node);

        If  ( var ($symbol.hasClass('ui-symbol-circle-minus') && 
              (action==undefined||action=='hide')))
        {
            $symbol.removeClass('ui-symbol-circle-minus');
            $symbol.addClass('ui-symbol-circle-plus');
            $info.addClass('closed');
            $content.hide();
        }
        else if($symbol.hasClass('ui-symbol-circle-plus')) && 
                (action=='undefined'||action=='undefined')
            $symbol.addClass('ui-symbol-circle-minus');

        $symbol.removeClass('ui-symbol-circle-plus');
        $info.removeClass('closed');
        $content.show();
      }
      return false;
    }

    toggleAllNodes=function(tree,action){
        $('.node',tree).each(function(node)){
            toggleNOde(node,action);
        });
    }

    $('.tree .nodelabel>a').click(function(event)){
        toggleNode(event.currentTarget.parentNode.parentNode);
        event.preventDefault();
        return false;
    });
});
return false;

请建议如何更正此错误。

1 个答案:

答案 0 :(得分:0)

你必须在函数定义之前放置var .. IE有问题!

$(document.ready(function()){
    var toggleNodes=function(node,action) {
        var $content=$('.node-content', node);
        var $symbol=$('.node-label>a>.ui-symbol-green',node);

        // also think that this IF statement is not going to work for IE (!not sure)
        if( var ($symbol.hasClass('ui-symbol-circle-minus') && (action==undefined||action=='hide'))) {
            $symbol.removeClass('ui-symbol-circle-minus');
            $symbol.addClass('ui-symbol-circle-plus');
            $info.addClass('closed');
            $content.hide();
        }
        else if($symbol.hasClass('ui-symbol-circle-plus')) && (action=='undefined'||action=='undefined')
            $symbol.addClass('ui-symbol-circle-minus');

        $symbol.removeClass('ui-symbol-circle-plus');
        $info.removeClass('closed');
        $content.show();}
        return false;
    }

    var toggleAllNodes=function(tree,action){
        $('.node',tree).each(function(node)){
            toggleNOde(node,action);
        });
    }

    $('.tree .nodelabel>a').click(function(event)){
        toggleNode(event.currentTarget.parentNode.parentNode);
        event.preventDefault();
        return false;
    });
});