javascript - 如果您移动鼠标,则不会触发 onClick 事件

标签 javascript html

我有一个像这样的简单按钮:

<a class="button" href="javascript:void(0);" onclick="submitActivity();">Add</a>

我也尝试过:

<a class="button" href="javascript:submitActivity();">Add</a>

在这两种情况下,如果鼠标在 mousedown 和 mouseup 之间移动了一定数量的像素,则不会记录点击。这可能会让用户相信他们已经提交了信息,而实际上他们并没有提交

这发生在 Chrome 中。没有测试过其他浏览器。

无论您在按钮的哪个位置单击和释放,我都希望触发该事件。

编辑:Firefox 中也发生了同样的事情,但从视觉上看,我似乎是在拖动链接。这样至少对用户来说它没有提交是有意义的,但在 Chrome 中没有这样的视觉指示器来指示正在发生的事情。

最佳答案

单击定义为“按住鼠标按钮,然后松开鼠标按钮”。它是在同一元素上执行的鼠标按下和鼠标弹起事件的组合。如果用户离开该元素,他们将不再执行单击,而只是执行 mousedown(还有 mouseout,然后是不同元素上的 mouseup)。

这是标准的、直观的行为。用户不希望他们的点击“重要”,除非他们在不动的情况下松开鼠标。

如果对于您的应用程序来说,它真的比提交中发生的任何点击结果都重要,那么不要使用 onclick,使用 onmousedown。

<a class="button" href="javascript:void(0);" onmousedown="submitActivity();">Add</a>

编辑:误解了你的问题。也许我习惯的这种语法对你有用:

 <INPUT type="button" value="Add" name="add_button" onClick="submitActivity()">

关于javascript - 如果您移动鼠标,则不会触发 onClick 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9855829/

相关文章:

javascript - 我正在尝试将产品列表的数量限制为 10

javascript - 我们如何在 jQuery $.each 方法中逐一追加具有淡入效果的元素列表

javascript - Angular 2滚动到顶部的路线更改不起作用

html - 为什么我的网站在 Safari 中看起来不一样,我该如何解决?

Javascript 正则表达式 - 括号引号

javascript - JS 对抗缓存页面

html - 水平对齐 3 个嵌套的 div

html - 使用 z-index 正确居中元素

css - 间距和分层不适用于图像和列表

java - 为什么html源代码中缺少 "qaautomation.net"?