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()代替。