2016-12-14 51 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'); 
    

    把它放在點擊手柄內河

  • 將處理程序存儲在變量中,並在點擊處理程序中手動運行它。

應該很容易實現它自己

相關問題