mousedown和jquery中的点击之间的区别

我正在学习jquery中的事件。 在实施它们时,我遇到了疑问。 mousedown()和click()事件有什么区别。 我应该在什么条件下使用哪个事件。

例如:两个事件在以下代码中执行相同的任务:

$("#p1").mousedown(function(){ alert("Mouse down over p1!"); }); $("#p1").click(function(){ alert("Mouse down over p1!"); }); 

两者都表现相同。有人可以澄清差异。 如果相同,我应该更喜欢哪个?

当按下左侧或右侧(或中间)时, onMouseDown将触发。 同样, onMouseUp将在释放任何按钮时触发。 onMouseDown即使在对象上单击鼠标然后移出它也会触发,而如果单击并按住其他位置的按钮, onMouseUp将触发,然后将其释放到对象上方。

只有在同一个对象上按下并释放鼠标左键时, onClick才会触发。 如果您关心订单,如果同一个对象设置了所有3个事件,则它是onMouseDownonMouseUp ,然后是onClick 。 每个偶数只应该触发一次。

细节:

http://api.jquery.com/click/
http://api.jquery.com/mouseup/
http://api.jquery.com/mousedown/

来源 Anton Baksheiev撰写

mousedown鼠标按钮但在释放鼠标按钮之前会触发mousedown事件。

mousedownmouseup事件之后触发click事件。

$(element).click()会在您按下鼠标按钮然后释放它时触发。

$(element).mousedown()触发,然后按下鼠标按钮。

尝试按住该按钮上的单击按钮,然后在此处释放它: http : //jsfiddle.net/n9rJ9/

他们不。 您可能会这么认为,因为您将两个事件处理程序绑定在同一元素上,因此mousedown将始终在click事件发生之前触发。

如果你将它们绑定在不同的元素上,你会看到mousdown总是在按下按钮(任何鼠标按钮)时触发而没有释放,并且在释放左(主)侧的鼠标按钮后将点击。

看到这个小小的jsfiddle: http : //jsfiddle.net/wBfbm/

 $("#p1").mousedown(function(){ alert("Mouse down over p1!"); }); $("#p2").click(function(){ alert("Mouse down over p1!"); }); 

当按下左侧或右侧(或中间)时, onMouseDown将触发。

只有在同一个对象上按下并释放鼠标左键时, onClick才会触发。

试试这种方式。 因为event.stopPropagation不会停止鼠标按下事件事件。 鼠标按下和单击事件彼此无关。

  var mousedDownFired = false; $("#id").mousedown(function(event){ mousedDownFired =true; //code }); $("#id").click(function(event){ if(mousedDownFired) { mousedDownFired = false; return; } //code }); 

更新:

不。 像这样触发鼠标事件

1)MouseDown

2)点击

3)MouseUp

如果触发鼠标按下,则在触发鼠标按下事件后将启用标记。在此单击事件将禁用标志变量。 这将作为循环方式工作。 不要考虑两个鼠标按下或两次点击

mouseDown,mouseUp和mouseClick中还有许多鼠标点击相关事件,还有一些其他事件。

mouseClick事件之前通常是mouseDown,紧接着是mouseUp,只要鼠标没有在进程中移动。