2012-04-28 124 views

回答

2

你可以做

$('element').mouseleave(function(event){ 
    // assuming that allowedList holds the array of allowed elements 
    if (allowedList.indexOf(event.relatedTarget) > -1){ 
     // found 
    } else { 
     // not found 
    } 
}); 

演示在http://jsfiddle.net/gaby/V4pJb/

+0

這正是我試圖實現。 – Lothre1 2012-04-29 14:03:43

0

使用jQuery,你可以這樣做:

​$("#foo").mouse​​​leave(function(e) { 
    var element = $(e.target); 
})​;​ 

這裏的工作的例子。您可以將鼠標懸停在文本「Hello」上,並在鼠標懸停時顯示它將要離開的元素。 http://jsfiddle.net/k7Gfv/

如果mouseenter(或懸停)與mouseleave不同,那麼您需要使用變量來跟蹤它。在mouseenter(或懸停)上,設置一個將存儲該元素的變量。在mouseleave上,然後你可以引用該變量(只要記得清除或重置下次mouseenter甚至被觸發時的值)。

0

不知道你在找什麼,但也許這是somehing這樣的:

var elements = $("#a1, #a2"); 

$("#a3").on('mouseleave', nextElm); 

function nextElm() { 
    $('div').on('mouseenter', thisIsIt); 
    $("#r").html('Now hover another element ?'); 
} 

function thisIsIt(e) { 
    if ($.inArray(e.target, elements)!=-1){ 
     $("#r").html('yes'); 
    }else{ 
     $("#r").html('no');    
    } 
    $("#a3").off('mouseleave', nextElm); 
    $('div').off('mouseenter', thisIsIt); 
} 

FIDDLE

0

你可以做這樣的事情。 Here's a fiddle

var hovered = false;; 
$('div').mouseleave(function(e) { 
    hovered = true; 
}); 
$('div').hover(function(ev) { 
     if (hovered) { 
      alert(ev.target); 
      hovered = false; 
     } 
}); 
​ 
相關問題