使用 jQuery/Javascript,我如何检查MouseLeave
事件发生后鼠标悬停的第一个元素是什么?
基本上,我想从元素数组中检查鼠标是否在这些元素上滚动。
我正在尝试使用event.relatedTarget
.
有什么帮助吗?
使用 jQuery/Javascript,我如何检查MouseLeave
事件发生后鼠标悬停的第一个元素是什么?
基本上,我想从元素数组中检查鼠标是否在这些元素上滚动。
我正在尝试使用event.relatedTarget
.
有什么帮助吗?
relatedTarget
鼠标事件存在一个属性
MouseEvent.relatedTarget
只读属性是鼠标事件的次要目标,如果有的话
mouseleave
它指向输入的元素。
所以你可以做
$('element').mouseleave(function(event){
// assuming that allowedList holds the array of allowed elements
if ( allowedList.indexOf( event.relatedTarget ) > -1 ){
// found
} else {
// not found
}
});
使用 jQuery,您可以这样做:
$("#foo").mouseleave(function(e) {
var element = $(e.target);
});
这是一个工作示例。您可以将鼠标悬停在文本“Hello”上,鼠标移出时,它会告诉您它要离开哪个元素。 http://jsfiddle.net/k7Gfv/
如果 mouseenter(或 hover)与 mouseleave 不同,那么您需要使用变量来跟踪它。在 mouseenter(或悬停)上,设置一个将存储该元素的变量。在 mouseleave 上,您可以引用该变量(只需记住在下次触发 mouseenter 时清除或重置该值)。
不知道你在找什么,但也许是这样的:
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);
}
</p>
你可以做这样的事情。这是一个小提琴
var hovered = false;;
$('div').mouseleave(function(e) {
hovered = true;
});
$('div').hover(function(ev) {
if (hovered) {
alert(ev.target);
hovered = false;
}
});