如何启动jQuery的
mouseleave当鼠标不在elementA和elementB上时发生的事件?
有关更好的理解,请参见示例这里。
在containerC中包装这两个元素并从其中触发事件不是一个选项,因为我在两个不同的表单元格中有elementA和elementB。
我不是在尝试进行多元素选择(,)。我试着模仿逻辑和(&)。如前所述,当鼠标既不在elementA上也不在elementB上时,必须触发该事件.
我希望你能理解我的问题。
发布于 2013-09-03 08:15:14
当鼠标进入任何一个元素时,这将添加一个类mouse_over。然后,当检测到mouse_over时,它将检查是否没有mouseleave元素。setTimeout需要允许鼠标在鼠标闪存之前开火,并且可能需要额外的调整以消除竞赛条件。
$('.myDiv, .myDiv1').mouseenter(function () {
$(this).addClass('mouse_over')
})
$('.myDiv, .myDiv1').mouseleave(function () {
$this = $(this)
timeoutId = setTimeout(function () {
$this.removeClass('mouse_over')
if ($('.mouse_over').length == 0) {
console.log('not_in_either');
}
}, 1);
});发布于 2013-09-03 08:17:53
作为变体设置类,例如在鼠标时“悬浮”到div,在鼠标保存时将其移除。
然后创建函数,检查elementA和elementB没有“悬浮”类,如果两者都是真的话-做任何事情。将此函数绑定到elementA和elementB mouseleave事件。
发布于 2013-09-03 08:18:19
嗯,我已经更新了你的演示,它应该在按钮上工作,点击,你可以根据你的要求进行更改。
这里是演示
$('.myDiv').mouseleave(function(){ console.log('out'); });
$('input').click(function(){
alert('a');
$('.myDiv').trigger('mouseleave');
});https://stackoverflow.com/questions/18587164
复制相似问题