3

如何先找到mouseclick,如果没有点击,然后去mouseover

我在两个鼠标事件中实现了两种类型的功能。一进一mouseovermouseclick

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

代码:

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

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

笔记:

Alos,我尝试使用计时器,设置控制标志,但在每次尝试中,只有 mouseover首先触发。两者mouseover 都有mouseclick不同的功能。如果两者相同,那么我们可以共同使用。但是,这里的情况不同。我也在网上搜索过这个。但直到现在都没有任何帮助。谢谢。

4

3 回答 3

0

在 click 事件中定义 mouseover 事件呢?

例子:

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

我没有测试过硬...

于 2016-12-14T16:41:06.173 回答
0

您有 2 个选项:

  • 手动触发事件:

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

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

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

应该很容易自己实现

于 2016-12-16T13:33:10.223 回答
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/

于 2016-12-14T13:21:23.927 回答