2011-12-02 142 views
-1

低于JQuery用于显示和隐藏我的html页面内容的代码。当我点击显示产品链接产品的所有名称都在下面,当点击时隐藏产品链接它隐藏产品。它工作正常,但在IE6.0当我点击隐藏产品链接它是隐藏复选框也不过Mozilla的不出所料jQuery功能不能正常工作

$(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; 

请建议如何纠正这个错误。

+0

你可以发布你的html片段(它可以填充虚拟文本)。另外,您是否可以修复您现在使用的代码格式,以便于阅读。 – Matt

+0

尝试使用jQuery的切换方法和它的回调函数来处理图标swith。它会让你的代码更具可读性,并可能修复你的错误。 –

+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; 
    }); 
}); 
+0

感谢您的输入工作。 – user1057697

+0

欢迎您!有一些基本的东西可以简化你在现代浏览器中工作的代码,但不能在IE #fail中使用 –