jQuery:带有stopPropagation的元素转到它的链接

时间:2014-10-21 15:26:18

标签: javascript jquery stoppropagation

我使用stopPropagation创建链接到/#的父菜单项,以便在单击时显示下拉子菜单。单击时会显示子菜单,但在显示子菜单之前首先显示为url /#。我希望忽略它的链接,只显示下拉菜单。我的代码如下:

$(document).on('click', '#navpanel .mainnav a[href^="/#"]', function(e){
 if($(this).parent('li').hasClass('expanded')) {  
  $(this).siblings('ul').css('display', 'block').slideDown('linear', function(){
    $(this).parent('li').toggleClass('expanded');

  });
} else {
  $(this).siblings('ul').css('display', 'none').slideUp('linear', function(){
  $(this).parent('li').toggleClass('expanded');
  });
}
 var objHeight = 0;
 $.each($('ul.tier1').children(), function(){
        objHeight += $(this).height();
 });
 $('ul.tier1').height(objHeight);
e.stopPropagation();
}); 

1 个答案:

答案 0 :(得分:2)

如果我理解你,你不需要stopPropagation但是防止违约。将此添加到您的链接点击事件。它将禁用默认操作,在您的情况下是重定向。

e.preventDefault();

stopPropagation只是阻止您的事件在DOM树中冒泡