【问题标题】:Does using event.preventDefault() in "mousedown" prevent "click" or "mouseup" event in jquery?在“mousedown”中使用 event.preventDefault() 会阻止 jquery 中的“click”或“mouseup”事件吗?
【发布时间】:2014-02-20 06:58:19
【问题描述】:

我是jquery 的新手,我怀疑在mousedownmouseup 事件中使用events.preventDefault() 是否会阻止clickdblclick 事件?

请提供说明或样本。

提前致谢。 马杜

【问题讨论】:

  • events.preventDefault() 只阻止事件的默认动作。
  • 在阅读了其他 Felix 的回答后,我想我现在明白你的问题了。不过,您应该调整标题,因为它具有误导性。
  • 谢谢你,我得到了我想要的。 StackOverFlow Rockzzzzzzzzzzzz....
  • @Madhu,你能举例说明你是如何得到这个的吗?
  • @SonuK,评论 stackoverflow.com/questions/21900470#comment-33167721 澄清了我,在我的情况下,当mousedown 插入一个新元素,因此目标更改和后续click 获取阻止了。我做了一些设计更改来解决这个问题。

标签: javascript jquery events preventdefault


【解决方案1】:

mouseupmousedown 都不会阻止默认点击事件。

Fiddle Demo

你需要使用click():

$('#test').on('click', function(e) {
    e.preventDefault();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<div onclick="alert('Clicked')" id="test">Click Here</div>

Fiddle Demo

【讨论】:

  • 我认识那位哥们,但我想知道它是否会阻止后续事件的发生?
  • 不,不是。 e.preventDefault() 只是阻止元素的默认操作,而不是后续元素或其他事件
【解决方案2】:

它不会阻止事件本身,而是阻止事件触发动作

一个简单的例子是点击一个锚链接。 click 事件的默认操作是将浏览器带到一个新的 URL。在这种情况下,它不会发生。

【讨论】:

  • 谢谢。我认为它可以防止后续事件的发生。它会阻止他们吗?
  • 它没有。如果您想阻止后续事件,您需要使用 event.stopPropagation()event.stopImmediatePropagation()
  • @Quinn 不会阻止我发生进一步的事件。我也不会这么想,因为传播与它有什么关系?
猜你喜欢
  • 2012-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-24
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多