Javascript jquery中的e.stopPropagation()对锚标记有效吗

Javascript jquery中的e.stopPropagation()对锚标记有效吗,javascript,jquery,Javascript,Jquery,我想要阻止我试图使用的锚标记中的元素的eventpropogation();这似乎不起作用,是可能的还是我只是在浪费时间请帮我离开这里 javascript是: $(document).ready(function(){ $('.alink .p').click(function(e){ alert("hi"); e.stopPropagation(); }); html是: <div> <a href="http://google.com

我想要阻止我试图使用的锚标记中的元素的eventpropogation();这似乎不起作用,是可能的还是我只是在浪费时间请帮我离开这里 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>

感谢您宝贵的时间

描述

它不会阻止任何默认行为(如链接点击),除了这个方法之外,您可能还想考虑使用。


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

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

您的脚本及其
文档
中有一些拼写错误,而不是
文档

看看样品和这个 样品 更多信息

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

您应该使用
event.preventDefault()
停止上述默认操作

来源:

试试这个

$(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()。

它是
文档
,而不是
“文档”
,您有语法错误(缺少
e.preventDefault()
通常,返回false不是一个好主意当您只想阻止默认操作时;它将干扰其他事件处理程序。此外,您只能在函数末尾使用它,因此如果出现任何javascript错误,浏览器仍将跟随该链接,这可能是不需要的。正如Esailija所说,
e.preventDefault()
是更好的解决方案。在处理某个问题以获得另一个问题的答案时遇到了相同的问题。这种方式是有意义的,但只有在事件到达
之前触发“跟随链接”操作时才有意义。如果对
的子元素调用
.stopPropagation()
,则我希望该操作永远不会被触发,因为
click
事件永远不会到达锚。@AnthonyGrist,您是否找到了解决方案?试着做和你完全一样的事情。
$('document').ready(function(){
    $('.alink .p').click(function(e){
    alert("hi");
    e.stopPropagation();  
});