‘mouseup’和’click’事件有什么区别?

使用jQuery,我经常喜欢将mousedownmouseup事件结合起来用于可推送的按钮。

但是,在每种情况下我都使用了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毫秒的延迟 。