jquery中的e.stopPropagation()是否适用于锚标记

我希望阻止来自锚标记内的元素的eventpropogation我试图使用e.stopPropagation(); 它似乎没有工作是可能或我只是浪费时间请帮助我离开这里javascript是:

$(document).ready(function(){ $('.alink .p').click(function(e){ alert("hi"); e.stopPropagation(); }); 

HTML是:

  

谢谢你宝贵的时间

event.stopPropagation()停止将事件传递给DOM结构中的处理程序,该元素最初触发了事件。 但是,它不会阻止已经触发的操作。

您应该使用event.preventDefault()来停止上面提到的默认操作。

资料来源:

  • event.preventDefault()
  • event.stopPropagation()

描述

它不会停止任何默认行为(例如链接点击) ,除了此方法之外,您可能还需要考虑使用event.preventDefault() 。

event.stopPropagation()仅适用于事件处理程序,而不是默认行为。

event.preventDefault()如果调用此方法,则不会触发事件的默认操作。

您的脚本中存在一些拼写错误,而其document没有"document"

查看Sample和这个jsFiddle Demonstration

样品

 $(document).ready(function(){ $('.alink, .alink > .p').click(function(e){ e.preventDefault(); e.stopPropagation(); alert("hi"); }); }); 

更多信息

  • jQuery – event.preventDefault()
  • jQuery – event.stopPropagation()

试试这个

 $(document).ready(function(){ $('.alink .p').click(function(e){ e.preventDefault(); e.stopImmediatePropagation(); alert("hi"); return false; }); }); 

你应该使用e.preventDefault()来停止默认行为。 stopPropagation用于停止事件冒泡。

你错过了括号括号,不是吗?

 $('document').ready(function(){ $('.alink .p').click(function(e){ alert("hi"); e.stopPropagation(); }); 

修复括号,然后使用e.preventDefault()代替。