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个事件,则它是onMouseDown
, onMouseUp
,然后是onClick
。 每个偶数只应该触发一次。
细节:
http://api.jquery.com/click/
http://api.jquery.com/mouseup/
http://api.jquery.com/mousedown/
来源 Anton Baksheiev撰写
mousedown
鼠标按钮但在释放鼠标按钮之前会触发mousedown
事件。
在mousedown
和mouseup
事件之后触发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,只要鼠标没有在进程中移动。