【发布时间】:2016-05-20 23:19:58
【问题描述】:
我试图通过从容器上的 mousedown 事件返回 false 来防止运行元素的子元素的已定义 onclick 事件,如下所示:
submit_container.mousedown(function(event){
return false;
});
如果我这样写我的代码,它就行不通。但是,如果我先添加警报,则点击事件实际上已停止:
submit_container.mousedown(function(event){
alert('Alert');
return false;
});
here 也提到了同样的问题,但遗憾的是没有一个答案能解决这个问题。
编辑:JSfiddle example。我想要第二个链接的行为,但不必触发警报
【问题讨论】:
-
我不确定我是否完全关注。你能提供一个jsfiddle吗?我认为您可能正在寻找 event.stopPropagation(),但我不能确定。
-
尝试添加 event.preventBubble()?
-
@tpdietz 为问题添加了 JSfiddle
-
@Radical,谢谢。我现在绝对完全理解这个问题。我对这个问题没有很好的解决方案,但至少可以提供一些见解。锚元素将是第一个接收事件的元素。当 mousedown 事件在容器的事件处理程序上触发时,锚元素已经接收到该事件。试图阻止锚元素的事件处理程序的动作可能应该发生在锚元素上(而不是容器)。我想出了几个玩弄 jsFiddle 的解决方案,但是唉,它们都是丑陋的 hack。
-
我同意阻止对元素本身的操作会好得多,但我处于动态加载元素的情况,据我所知,我无法挂钩上面代码加载的时候直接加载元素,所以我要通过容器。
标签: javascript jquery onclick mousedown