Jquery-悬停未启动(底部/右侧问题)
我的悬停功能有问题 HTMLJquery-悬停未启动(底部/右侧问题),jquery,hover,Jquery,Hover,我的悬停功能有问题 HTML JQUERY $('#test').hover( function () { $('#outp').append('enter <br />'); }, function () { $('#outp').append('leave <br />'); }); 如果光标通过窗口的chrome(底部或右侧)离开元素,则不会触发鼠标离开事件。这是正常的 更新 奇怪的是,它
JQUERY
$('#test').hover( function ()
{
$('#outp').append('enter <br />');
}, function ()
{
$('#outp').append('leave <br />');
});
如果光标通过窗口的chrome(底部或右侧)离开元素,则不会触发鼠标离开事件。这是正常的 更新 奇怪的是,它与live功能一起工作,但为什么
可能是因为
live()
不直接附加事件,而是捕获DOM中冒泡的事件,并检查事件.target
以查看是哪个元素最初触发了事件。如果光标通过窗口的chrome(底部或右侧)离开元素,则不会触发鼠标离开事件。这是正常的
更新
奇怪的是,它与live功能一起工作,但为什么
可能是因为
live()
不直接附加事件,而是捕获DOM中冒泡的事件,并检查事件。target
以查看最初触发事件的元素。唯一的解决方法是将元素放置在窗口的范围内,以便在鼠标点击带有悬停事件的元素之前捕获鼠标移动
#test {
border: 1px solid #ff0000;
position: absolute;
right: 2px;
bottom: 2px;
height: 20px;
width: 100px;
}
...
<div id="test"></div>
#测试{
边框:1px实心#ff0000;
位置:绝对位置;
右:2px;
底部:2px;
高度:20px;
宽度:100px;
}
...
唯一的解决方法是将元素放置在窗口的范围内,以便在鼠标通过悬停事件击中元素之前捕获鼠标移动
#test {
border: 1px solid #ff0000;
position: absolute;
right: 2px;
bottom: 2px;
height: 20px;
width: 100px;
}
...
<div id="test"></div>
#测试{
边框:1px实心#ff0000;
位置:绝对位置;
右:2px;
底部:2px;
高度:20px;
宽度:100px;
}
...
您正在使用哪个浏览器?在Firefox中运行良好。您使用哪种浏览器?在Firefox中运行良好。我相信如果你移动鼠标足够快,它仍然不会触发。你看,这是真的。在这种情况下,可能使用mousemove事件(带有设置当前状态的标志)(即out或over)更合适?我相信如果你移动鼠标足够快,它仍然不会触发。你看,这是真的。在哪种情况下,使用mousemove事件(带有设置当前状态的标志)(即out或over)更合适?