JQuery鼠标事件
所以我的问题是关于如何处理jQuery鼠标事件。如果我错了,请纠正我,但以下事件按此顺序发生:JQuery鼠标事件,jquery,events,Jquery,Events,所以我的问题是关于如何处理jQuery鼠标事件。如果我错了,请纠正我,但以下事件按此顺序发生: .mouseDown .click .mouseUp 我的问题是,。在默认情况下调用它之前,单击等待.mouseDown完成运行吗?如果没有,是否有类似于.promise的动画强制执行。单击等待 编辑#1 很多回答都有点涉及我的问题,但我想知道的是,。单击是否会等待。鼠标向下在的代码开始运行之前完全运行。单击开始运行?如中所述,它保证会这样做,或者如果我必须编写逻辑来确保这一点。它与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。嘿,这是一种报复吗?很可能你的报复是因为你的回答错误,而我的回答没有错,或者你还没有指出。一旦我否决了你的答案,我的答案就被否决了,所以我想,不管怎样,谢谢我改变了它,顺便说一句,我没想到警报会有副作用。删除了我的帖子,取消了否决票。谢谢!如果我在编辑中听起来像是在嘲笑,那不是我的本意!