我有一个像这样的简单按钮:
<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/