‘mouseup’和’click’事件有什么区别?
使用jQuery,我经常喜欢将mousedown
和mouseup
事件结合起来用于可推送的按钮。
但是,在每种情况下我都使用了mouseup
事件,绑定click
事件似乎产生了相同的结果。
以下两种方法之间是否存在实质性差异?
// Method 1 $('.myButton').bind('click', callback); // Method 2 $('.myButton').bind('mouseup', callback);
请注意我正在寻求关于使用这两种方法之间差异的技术解释。 这与被标记为欺骗的问题无关: 区分click vs mousedown / mouseup
使用mouseup事件,您可以单击屏幕上的其他位置,按住单击按钮,然后将指针移动到鼠标元素,然后释放鼠标指针。
click事件需要在该元素上发生mousedown和mouseup事件。
正常的期望是点击需要mousedown和mouseup事件,所以我建议点击事件。
从可能的重复,似乎鼠标按钮和鼠标按钮也可以由鼠标按钮引起。 这与普通用户期望的非常不同。
我的理解是“点击”隐藏了许多复杂性(例如确保mousedown / up出现在同一个元素上,用ESC /右键单击取消)。 应优先使用“mousedown / up”上的“click”。
当应用程序经常以基础DOM元素被替换的方式更新内容时,“点击”似乎不起作用的一种情况。 在这种情况下,不会触发“点击”,这可能会导致糟糕的客户体验。
影响我编码方式的最大区别; 是a tag
上的click event
负责更改URL。 mousedown,也没有mouseup事件会实现这一点
我想在其他答案中添加click
事件在启用触摸的设备上工作,而mouseup
/ mousedown
则没有(显然因为没有“鼠标”)
请注意, click
事件触摸设备有300毫秒的延迟 。