JQuery鼠标事件

JQuery鼠标事件,jquery,events,Jquery,Events,所以我的问题是关于如何处理jQuery鼠标事件。如果我错了,请纠正我,但以下事件按此顺序发生: .mouseDown .click .mouseUp 我的问题是,。在默认情况下调用它之前,单击等待.mouseDown完成运行吗?如果没有,是否有类似于.promise的动画强制执行。单击等待 编辑#1 很多回答都有点涉及我的问题,但我想知道的是,。单击是否会等待。鼠标向下在的代码开始运行之前完全运行。单击开始运行?如中所述,它保证会这样做,或者如果我必须编写逻辑来确保这一点。它与jQuery无关

所以我的问题是关于如何处理jQuery鼠标事件。如果我错了,请纠正我,但以下事件按此顺序发生:

.mouseDown
.click
.mouseUp
我的问题是,
。在默认情况下调用它之前,单击
等待
.mouseDown
完成运行吗?如果没有,是否有类似于
.promise
的动画强制执行
。单击
等待

编辑#1
很多回答都有点涉及我的问题,但我想知道的是,
。单击
是否会等待
。鼠标向下
的代码开始运行之前完全运行。单击
开始运行?如中所述,它保证会这样做,或者如果我必须编写逻辑来确保这一点。

它与jQuery无关,而是javaScript中事件的定义方式

click
事件是一个
mousedown
事件,之后是同一元素上的
mouseup

换句话说,
mousedown
事件首先在按下鼠标按钮时触发,然后在松开按钮时触发
mouseup
事件,如果它们都在同一元素上触发,则触发
click
事件

您可以轻松测试此->

编辑:

编辑#1这些回答中有很多涉及到我的问题,但是 我想知道的是.click是否会等待.mouseDown启动 在的代码之前完全运行。单击开始运行?作为 在中,它保证这样做,或者如果我必须编写逻辑来确保 那个

Javascript只有一个线程,因此两个函数不能同时执行,只有少数例外,如异步方法

另外,
单击
会等待
鼠标向下
鼠标右键
,然后检查这两个按钮以确定目标是同一个元素,因此是的,
单击
事件处理程序在
鼠标向下
鼠标右键
事件触发之前无法触发


无论
mousedown
事件处理程序中的每一段代码是否在
单击
事件处理程序启动之前完成,如果不确切知道这些事件处理程序中的内容,都不可能回答,但通常情况下,all鼠标向下
事件处理程序中的代码将在
单击事件处理程序中的代码启动之前完成,除非出现异步行为或其他异常情况。

顺序为向下、向上、单击。如果您需要在mousedown中执行延迟命令,并希望在同时触发click事件时触发第二个命令,则可以执行以下操作:

var clicked = 0;
$('#test').on('mousedown',function() {
//do animation stuff onmouse down
if(clicked)
{
    //do animation stuff onclick
    clicked = 0;
}
});

$('#test').on('click',function() {
 clicked = 1;
});

当鼠标被释放时会触发up(显然这意味着鼠标被按下),但是当鼠标被按下并释放时会触发click。嘿,这是一种报复吗?很可能你的报复是因为你的回答错误,而我的回答没有错,或者你还没有指出。一旦我否决了你的答案,我的答案就被否决了,所以我想,不管怎样,谢谢我改变了它,顺便说一句,我没想到警报会有副作用。删除了我的帖子,取消了否决票。谢谢!如果我在编辑中听起来像是在嘲笑,那不是我的本意!