javascript - 如何在 delegate() 中使用 event.stopPropagation()

标签 javascript jquery events event-bubbling

我的代码在 html 中如下所示:

<li class="arrow">    
    <div>
        <a href="javascript:void(0);" class="anchor">remove</a> 
    </div>                      
</li>

然后我使用 deligate() jquery 方法绑定(bind)我的元素(因为元素是动态出现的)

$obj.delegate(".arrow", "click", function() {
    alert("clicked on arrow");
});

$obj.delegate(".anchor", "click", function(event) {
     event.stopPropagation();
     alert("anchor clicked");
});

我的问题是,当我点击“.anchor”时,这两个事件都会发生。谁能告诉我如何在这种情况下使用 event.stopPropagation() ?我像上面那样尝试但没有工作。还有其他方法吗?

编辑: 我尝试调用 event.isPropagationStopped(),它返回 true。但仍然调用了两个事件。

最佳答案

当使用delegatelivestopPropagation 时会有限制。

您在处理程序中返回 false 以防止 eventPropagationdefault

尝试

$obj.delegate(".anchor", "click", function(event) {
     alert("anchor clicked");
     return false;
});

关于javascript - 如何在 delegate() 中使用 event.stopPropagation(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5203048/

相关文章:

Javascript 事件奇怪的行为,removeEventListener 不起作用

Java - 在后台线程中处理计时器事件

javascript - 使用下拉菜单时,JQuery TimePicker OnChange 不会触发

javascript - axios response.data.pipe 不是函数

javascript - Div 调整大小在 Internet Explorer 上不起作用

jquery - 比较 if 条件中的输入值

javascript - 更改没有 id 的 <li> 链接

javascript - 如何在 Django 中组织 JS 文件?

javascript - Javascript Canvas 动画超出最大调用堆栈大小

javascript - 在mapbox gl js中的图层上注册点击事件时如何操作事件冒泡