Jquery-悬停未启动(底部/右侧问题)

Jquery-悬停未启动(底部/右侧问题),jquery,hover,Jquery,Hover,我的悬停功能有问题 HTML JQUERY $('#test').hover( function () { $('#outp').append('enter <br />'); }, function () { $('#outp').append('leave <br />'); }); 如果光标通过窗口的chrome(底部或右侧)离开元素,则不会触发鼠标离开事件。这是正常的 更新 奇怪的是,它

我的悬停功能有问题

HTML



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)更合适?