2011-01-28 34 views
4

簡單的問題,我怎麼會在jQuery中完成此功能:鼠標 測試是否懸停在.myBoxjQuery的:如果鼠標離開= true,那麼這樣做

if ($(".myBox").mouseleave = true) { 
     DO SOMETHING 
    } else {something else} 

OR

if ($(".myBox").mouseover = false) { 
     DO SOMETHING 
    } else {Something else} 

注意:即時尋找IF聲明

回答

10

jQuery提供了關於一個jQuery對象檢查條件is方法。你的情況,你可以檢查:hover CSS僞類:

$('.myBox').is(':hover') === true 

勒阿弗爾看看這個演示,請嘗試單擊按鈕(這將提醒true)和互聯並在按鈕上按Enter鍵(不鼠標,它將返回false)。

DEMO:http://jsfiddle.net/marcuswhybrow/LL5JD/

+2

你真的嘗試過嗎?沒有**不**工作在IE瀏覽器,FF .. – 2011-01-28 17:01:22

0

法案。

或者使用hover可處理兩者..

$('.myBox').hover(
    function(e){ 
    //do the mouseenter things here... 
    }, 
    function(e){ 
    //do the mouseleave things here... 
    } 
); 

實施例在http://www.jsfiddle.net/gaby/ECYD4/

+0

')試圖創建一個延遲,當我將鼠標懸停在某個東西上時,所以它不會馬上關閉,但是也許3秒後,但如果我懸停然後懸停,取消懸停,所以如果有人不小心徘徊,它不會馬上關閉。 – 2011-01-28 17:07:21

+0

@android。nick請參閱我的問題的更新,以瞭解如何使Gaby的代碼適應您的需求。 jsfiddle.net/Scoobler/ThLqx/12 – Scoobler 2011-01-28 18:25:03

1
$(".myBox").hover(
      function(){ 
       //DO SOMETHING ON MOUSE ENTER 
      }, 
      function(){ 
       //DO SOMETHING ON MOUSE LEAVE 
      } 
}); 
4

jQuery Mouse Over

$(".my_box").mouseover(function(){ 
    // Mouse over... 
}); 

$(".my_box").mouseout(function(){ 
    // Mouse left... 
}); 

這裏是一個例子看一看,添加邊框到圖像盤旋在它時,和後X量除去它時間如果它沒有被重新盤旋:See it working here

var hover_off = false; 
var hover_count = 1000; 

$(".my_box").mouseover(function() { 
    hover_off = false; 
    $(this).addClass('hovering'); 
}); 

$(".my_box").mouseout(function() { 
    hover_off = true; 
    setTimeout(myMouseOut, hover_count); 
}); 

function myMouseOut() { 
    if (hover_off) { 
     $(".my_box").removeClass('hovering'); 
    } 
} 
2

沒錯,$('。myBox')。is(':hover')用於jQuery 1.5.1引發錯誤,但在我的測試中僅在Opera Browser(11.01)中: 未捕獲異常:語法錯誤,無法識別的表達:懸停

一種解決方法是使用否定表達:$( 'myBox上 ')是(' 不(:懸停)') 這工作得很好,而我在Opera 11,FF4,IE7測試,鉻5.

1

這爲我做的伎倆:

var hover = false; 
$('.someClass').each(function(i,e){ 
    hover = !hover ? $(e).is(':hover') : true; 
}); 

if (hover) 
    // do something 
else 
    // do something else 
相關問題