2011-02-02 108 views
0

基本上我有一些链接,其中包括一些其他的链接,我试图仅显示父链接,当一个点击父链接的子链接应该出现,当一次点击父链接再次子链接应该消失,与jquery下拉菜单的问题

代码工作为先点击它可以打开相关的子链接,但我怎么做,当我再次父点击链接他们消失,

感谢帮助。

jQuery.noConflict(); 

jQuery(document).ready(function(e) { 

jQuery('.nav-container ul.level0 li.level1 a').click(function(e) { 

    e.preventDefault(); 
    jQuery(this).css({'background':'#000000','color':'#ffffff'}); 
    jQuery('.nav-container ul.level0 li.level2 a').css('display','block'); 

}); 

}); 

回答

1

使用jquery toggle函数。

+0

哇,那很容易,我觉得这个问题很愚蠢。 – amir 2011-02-02 15:26:07

0

一个简单的方法来做到这一点将创建一个属性读取您点击的项目。

jQuery.noConflict(); 

jQuery(document).ready(function(e) { 

    jQuery('.nav-container ul.level0 li.level1 a').click(function(e) { 
     if(jQuery(this).attr('sel') != 'true') 
     { 
      e.preventDefault(); 
      jQuery(this).attr('sel','true'); 
      jQuery(this).css({'background':'#000000','color':'#ffffff'}); 
      jQuery('.nav-container ul.level0 li.level2 a').css('display','block'); 
     } else { 
      jQuery(this).attr('sel',''); 
      // do close code 
     } 
    }); 

}); 

凡属性“SEL”可能是别的东西,如“推”或“下降” ......像“选择”只是可能要使用的看点,“点击”,或其他可能混淆HTML。我也不会使用'class',因为你可以在一个对象上有多个类,它会返回这个。

<div class="selected item"></div> 
jQuery(this).attr('class') = 'selected item'; 
+0

性能评论。将jQuery(this)或$(this)替换为变量会更快。所以在你的点击函数的顶部做一个var $ el = $(this),然后引用这个变量。 – Keltex 2011-02-02 15:45:15