2012-04-28 110 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; 
     } 
}); 
​ 
相关问题