2016-12-14 47 views
3

如何找到mouseclick第一,如果没有点击,然后去mouseover如何首先找到鼠标点击,如果没有点击,然后去鼠标悬停

我在两个鼠标事件中实现了两种类型的功能。一个在mouseover,另一个在mouseclick

如果我点击了,我需要先触发mouseclick事件,而不是mouseover事件。我知道默认情况下,首先触发mouseover。但是如何实现这种类型的场景。

代码:

$('.example').mouseover(function (event) { 
    // ... 
    //mouse over logic 
    // ... 
}); 

$('.example').mouseclick(function (event) { 
    // ... 
    //mouse click logic 
    // ... 
}); 

注:

阿洛斯,我试着用定时器,设定控制标志,但在每一个尝试,只有 mouseover是triggerd第一。 mouseovermouseclick具有不同的功能。如果两者都是相同的,那么我们可以把它们放在共同的地方 。但是,这里的情况是不同的。我还通过网络搜索了 。但直到现在没有任何帮助。谢谢。

+0

我NNED显示的信息只对'mouseover' –

+2

你怎么知道,如果用户打算点击或鼠标悬停? – madalinivascu

+0

是的,就是这个问题。尝试如何实现这种情况。 –

回答

0

使用以下:

var timer; 
$(".example").on("mouseenter",function(e){ 
     timer=setTimeout(function(){ 
      // onmouseenter if not clicked 
      $(".example").css({background:"red"}); // for testing 
     }, 2000); 
}); 

$('.example').click(function (event) { 
    clearTimeout(timer); // Don't call the onmouseenter 
    $(".example").css({background:"blue"}); // for testing 
}); 

https://jsfiddle.net/ozgvfjzs/

+0

上面的代码触发'mouseenter'事件并在'mouseclick'后执行,事件在鼠标被点击时执行。 –

+0

@JohnStephen只需添加另一个变量来检查是否执行了'click',然后在'timeout'函数内添加'if'语句 – Ted

+0

@ASK,号码不起作用。点击后,'mouseenter'功能不起作用。 'isNotClicked'处于错误状态。所以,它不会进入'mouseenter'逻辑 –

0

什么click事件定义鼠标悬停事件?

例子:

$('.example').mouseclick(function (event) { 
    // ... 
    //mouse click logic 
    // ... 
    $(body).bind('onmouseover', '.example'){ 
     // mouseover logic 
    } 
}); 

我没有测试强硬...

0

你有2种选择:

  • 手动触发事件:

    $(this).trigger('mousehover'); 
    

    把它放在点击手柄内河

  • 将处理程序存储在变量中,并在点击处理程序中手动运行它。

应该很容易实现它自己

相关问题