如何首先找到鼠标点击,如果没有点击,则转到鼠标悬停

时间:2016-12-14 12:19:30

标签: javascript jquery mouseover mouseclick-event onmouseclick

如何首先找到mouseclick,如果没有点击,请转到mouseover

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

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

代码:

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

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

注意:

  

Alos,我尝试使用计时器,但是在每次尝试中都设置了控制标志   首先触发mouseovermouseover   mouseclick具有不同的功能。如果两者相同,那么   我们可以把它放在一起。但是,这里的情况有所不同。我也有   通过网络搜索这个。但到目前为止没有任何帮助感谢。

3 个答案:

答案 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/

答案 1 :(得分:0)

如何在点击事件中定义鼠标悬停事件?

示例:

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

我没有经过严格测试......

答案 2 :(得分:0)

您有两个选择:

  • 手动触发事件:

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

    将其放在点击处理程序中。

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

应该很容易自己实现