Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 鼠标点击vs点击_Javascript_Angularjs - Fatal编程技术网

Javascript 鼠标点击vs点击

Javascript 鼠标点击vs点击,javascript,angularjs,Javascript,Angularjs,在应用于单个元素的AngularJS指令中,假设我有下面的代码 $document.on('click', function(event){ console.log('click'); }); $document.on('mouseup', function(event){ console.log("mouseup"); }); 尽管有此命令,鼠标总是在点击前启动。情况会一直如此吗?如果click只是一个mousedown,后跟一个mouseup,那么为什么不管它的注册顺序如

在应用于单个元素的AngularJS指令中,假设我有下面的代码

$document.on('click', function(event){
    console.log('click');
});

$document.on('mouseup', function(event){
    console.log("mouseup");
});

尽管有此命令,鼠标总是在点击前启动。情况会一直如此吗?如果click只是一个mousedown,后跟一个mouseup,那么为什么不管它的注册顺序如何,它都会在之后触发?

因为这是浏览器/js引擎执行事件处理程序的顺序

嗯。如果一次点击是一次鼠标下移,然后是一次鼠标点击,那么事件将按照这个顺序触发(鼠标下移,鼠标点击,点击(因为它是由前面的2个组成的,它需要前面的2个被触发)),这是你无法改变的,很遗憾。

是的,情况总是这样。
click
事件定义为在
mouseup
事件之后立即发生,注册顺序不会影响该事件。

顺序将首先是鼠标事件,然后是click事件


因为您的鼠标将始终首先移动,所以事件将是顺序中的第一个事件…单击事件将触发后

顺序不取决于处理程序注册,而是取决于触发事件的顺序。。。在这种情况下,
mouseup
单击之前被触发
我应该知道的浏览器之间的任何差异?@Andrew我不知道。需要一些相关的测试,您可以自己测试订单。