0

此功能与所有 sub li 和 sub (a) 锚标签反映和冲突,因此子锚标签也得到了不需要的活动类,帮帮我....

jQuery(".left_navigation ul li").live('click', function (){ 
  jQuery(".sub_nav").slideUp("fast");
  jQuery(".left_navigation ul li").removeClass("active");  
  jQuery(this).find(".sub_nav").slideToggle("slow"); 
  jQuery(this).addClass("active");
  jQuery(".left_navigation ul li a").removeClass("active"); 
  jQuery(this).find("a").addClass("active"); 
});
4

2 回答 2

0

假设您需要 click for justli而不是它的 child a

你可以这样做

jQuery(".left_navigation ul li").live('click', function (e){ 
  if (e.target == this){  //<---make it work for just li and not a
   jQuery(".sub_nav").slideUp("fast");
   jQuery(".left_navigation ul li").removeClass("active");  
   jQuery(this).find(".sub_nav").slideToggle("slow"); 
   jQuery(this).addClass("active");
   jQuery(".left_navigation ul li a").removeClass("active"); 
   jQuery(this).find("a").addClass("active"); 
  } 
});

我猜你正在使用旧版本的 jQuery ,因为live()在新版本中已弃用和删除。所以如果你使用最新版本,最好使用on()而不是live()

于 2013-06-19T05:49:11.247 回答
0

尝试

jQuery(".left_navigation ul li li").live('click', function (event){
    event.stopImmediatePropagation();
})
jQuery(".left_navigation ul li").live('click', function (){ 
  jQuery(".sub_nav").slideUp("fast");
  jQuery(".left_navigation ul li").removeClass("active");  
  jQuery(this).find(".sub_nav").slideToggle("slow"); 
  jQuery(this).addClass("active");
  jQuery(".left_navigation ul li a").removeClass("active"); 
  jQuery(this).children("a").addClass("active"); 
});
于 2013-06-19T05:50:32.250 回答