我希望阻止来自锚标记内的元素的eventpropogation我试图使用e.stopPropagation();它似乎不起作用是否可能或者我只是浪费时间请帮助我离开这里 javascript是:
$(document).ready(function(){
$('.alink .p').click(function(e){
alert("hi");
e.stopPropagation();
});
html是:
<div>
<a href="http://google.com" class="alink" >Google links
<p class="p">Another Links to prevent default</p>
</a>
</div>
感谢您宝贵的时间
答案 0 :(得分:26)
event.stopPropagation()
停止将事件传递给DOM结构中的处理程序,该元素最初触发了事件。但是,它不会阻止已经触发的行动。
您应该使用event.preventDefault()
来停止上述默认操作。
<强>来源:强>
答案 1 :(得分:3)
它不会停止任何默认行为(例如链接点击),除了此方法之外,您可能还需要考虑使用event.preventDefault()。
event.stopPropagation()
仅适用于事件处理程序,而非默认行为。
event.preventDefault()
如果调用此方法,则不会触发事件的默认操作。
您的脚本中有一些拼写错误,document
没有"document"
。
$(document).ready(function(){
$('.alink, .alink > .p').click(function(e){
e.preventDefault();
e.stopPropagation();
alert("hi");
});
});
答案 2 :(得分:0)
试试这个
$(document).ready(function(){
$('.alink .p').click(function(e){
e.preventDefault();
e.stopImmediatePropagation();
alert("hi");
return false;
});
});
答案 3 :(得分:0)
您应该使用 - e.preventDefault()
来停止默认行为。 stopPropagation用于停止事件冒泡。
答案 4 :(得分:0)
你错过了括号括号,不是吗?
$('document').ready(function(){
$('.alink .p').click(function(e){
alert("hi");
e.stopPropagation();
});
修复括号,然后改为使用e.preventDefault()。