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

时间:2013-10-01 06:52:00

标签: jquery

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

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

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


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

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

8 个答案:

答案 0 :(得分:40)

当按下左侧或右侧(或中间)时,

onMouseDown将触发。同样,释放任何按钮时都会触发onMouseUp。即使在对象上单击鼠标然后移出它,onMouseDown也会触发,而如果单击并按住其他位置的按钮,则会触发onMouseUp,然后将其释放到对象上方。

只有在同一个对象上按下并释放鼠标左键时,

onClick才会触发。如果您关心订单,如果同一个对象设置了所有3个事件,则为onMouseDownonMouseUp,然后是onClick。每个偶数只应该触发一次。

详细说明:

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

Source

撰写的

Anton Baksheiev

答案 1 :(得分:13)

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

clickmousedown事件后,mouseup事件被触发。

答案 2 :(得分:1)

鼠标按钮然后释放时,

$(element).click()会闪现。

$(element).mousedown()点火,然后按下鼠标按钮。

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

答案 3 :(得分:1)

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

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

请参阅此小jsfiddle:http://jsfiddle.net/wBfbm/

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


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

答案 4 :(得分:1)

onMouseDown将在按下左侧(或中间)时触发。

只有在同一个对象上按下并释放鼠标左键时,

onClick才会触发。

答案 5 :(得分:1)

试试这种方式。因为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

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

答案 6 :(得分:0)

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

一个mouseClick事件通常先跟一个mouseDown,然后是mouseUp,只要鼠标在这个过程中没有被移动。

答案 7 :(得分:0)

  

onmousedown + onmouseup = onclick(点击事件);

** actions **                             ** event **

mouse press/down                          onmousedown
mouse release/up                          onmouseup
mouse press/down + mouse release/up       onclick
Key Enter/space press                     onclick