如果光标位于某个元素上,是否可以将鼠标效果始终除外?
所以说我有两个名为div1和div2的div,我会通过这样做得到mouseleave
效果:
$('div.div1').mouseleave(function() {
alert('code');
});
鼠标离开div2
后光标是否超过div1
,我可以获得相同的效果吗?
答案 0 :(得分:16)
JS小提琴:http://jsfiddle.net/HBCWs/
$( function() {
$('.div1').mouseleave( function(e) {
if( ! $(e.toElement).hasClass('div2') ) {
alert( 'not div2!' );
}
});
});
您可以使用jquery事件对象的toElement
属性来检查离开.div1
后鼠标移动到哪个元素
答案 1 :(得分:3)
这个帖子可能有帮助吗?
Check what element the cursor is on upon mouseleave() with jQuery?
他似乎想要做类似的事情,这被接受为答案:
您需要使用event.toElement || e.relatedTarget:
$('li')。mouseleave(function(e){
// new element is: e.toElement || e.relatedTarget
});
或者我误解了你的问题?
答案 2 :(得分:1)
$('div.div1').not('div2').mouseleave(function() {
alert('code');
});
答案 3 :(得分:0)
检查以下小提琴,当鼠标离开div1时,会显示一条警告信息,但当鼠标离开div2时,不会触发事件。
$('div#div1').mouseleave(function() {
alert("In div 1");
});