Javascript jquery:如何判断mouseup之后是否会出现click事件?

Javascript jquery:如何判断mouseup之后是否会出现click事件?,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,在jQueryonmouseup处理程序中,是否有任何方法可以知道同一元素的事件后面是否会有单击事件 我有一个菜单超链接的事件处理程序,当用户单击某个元素或在某个元素上“drop-n-drop”(如drag-n-drop)时,它会自动解除绑定。我希望避免在下一步出现单击时过早地解除mouseup上的处理程序绑定 我意识到我可以自己跟踪mousedown和mouseup事件,或者制定一个解决方案(例如,等待50毫秒,看看点击是否很快就会出现),但如果有内置的实现,我希望避免滚动我自己的实现 没有任

在jQuery
onmouseup
处理程序中,是否有任何方法可以知道同一元素的事件后面是否会有
单击事件

我有一个菜单超链接的事件处理程序,当用户单击某个元素或在某个元素上“drop-n-drop”(如drag-n-drop)时,它会自动解除绑定。我希望避免在下一步出现
单击时过早地解除mouseup上的处理程序绑定


我意识到我可以自己跟踪
mousedown
mouseup
事件,或者制定一个解决方案(例如,等待50毫秒,看看点击是否很快就会出现),但如果有内置的实现,我希望避免滚动我自己的实现

没有任何内置功能,因为它确实是针对您的需求而设计的。因此,如果jQuery能够处理任何点击、长时间点击、移动等组合,那么将需要维护大量代码和文档

也很难给出满足您需要的代码片段,但是setTimeout通常是第一步,类似于:

obj.mouseup = function (){
   obj.click = action; // do action 
   setTimeout ( function() {
       obj.click = functionOrigin // after 500 ms, disable the click interception
   }, 500);
};
您可以使用$(selector.data('events')来实现该目的

$('div').mouseup(function(){
 if($(this).data('events').click){
  console.log('Has a click event handler')
 }
});

那么,你是在问jQuery是否能够预测未来?:-)浏览器知道鼠标是否会产生点击,所以这并不完全是未来的预测,尽管如果浏览器没有提供访问这些知识的方法,那么我同意我们处于crstyal ball领域。但是浏览器已经提供了你所需要的一切。将鼠标按下/鼠标上升事件视为比单击事件“更低级别”。如果需要对鼠标按钮进行微调控制,请使用
up
down
并编写自己的计时代码。如果您想要更多的抽象,需要更少的控制,请使用
单击
。不要同时使用这两个函数。+1作为查找元素上jquery事件处理程序的指针。。。在另一个项目中一直在想这个问题。