jQuery-检测新元素中的鼠标

jQuery-检测新元素中的鼠标,jquery,Jquery,我使用jQuery构建了一个菜单,当用户将鼠标悬停在元素上时,它显示一个新元素淡入,当用户移开鼠标时,它淡出。现在,我将元素向上移动,使其覆盖原始元素,这导致了当新元素放置在顶部时触发第二个悬停事件的问题。什么是忽略新元素并仅在鼠标移出原始元素的边界后淡出的最佳方法 代码如下: $('#menuitem').hover(function() { $('#menu').append('<span id="hover_'+$(this).attr('rel')+'" class="ho

我使用jQuery构建了一个菜单,当用户将鼠标悬停在元素上时,它显示一个新元素淡入,当用户移开鼠标时,它淡出。现在,我将元素向上移动,使其覆盖原始元素,这导致了当新元素放置在顶部时触发第二个悬停事件的问题。什么是忽略新元素并仅在鼠标移出原始元素的边界后淡出的最佳方法

代码如下:

$('#menuitem').hover(function() {
    $('#menu').append('<span id="hover_'+$(this).attr('rel')+'" class="hover"></span>');
}, function() {
    $('#hover_'+$(this).attr('rel')).fadeOut(function(){$(this).remove();});
});
$('#menuitem')。悬停(函数(){
$(“#菜单”)。附加(“”);
},函数(){
$('#hover'+$(this.attr('rel')).fadeOut(function(){$(this.remove();});
});
现在,
#菜单
项是一个锚定项,其中包含一些文本,当鼠标在其上时,一个新元素(
.hover
)应显示在顶部,并应在鼠标离开原始菜单项后淡出

当前发生的情况是,当新项目添加到原始锚点的顶部时,第二个悬停功能被触发,新元素立即出现并消失

谢谢, J

删除侦听器:

$(element_here).unbind(); // If you used $(element_here).bind(); or .hover();
$(element_here).die(); // If you used $(element_here).live();
然后在鼠标离开旧元素后将其添加回去


很可能有比这更好的解决方案,但我们可能需要先看看您正在使用的代码示例,然后才能做出更好的尝试。

我发现在这种情况下最有效的解决方案是在HTML中进行内联绑定。这可能不是最漂亮的方法,但很多时候(以我的经验)将绑定内联比尝试使用
undind()。这显然不是一个完整的示例,但应该足以让您开始:

注意:我不确定您在
rel
attr中存储的是什么类型的数据,所以我只是用这个词来代替任何可能的数据

HTML


如果您能提供一个代码示例,这将非常有帮助。它可以通过多种不同的方式完成。编辑以包含示例代码。感谢您的建议,但我遇到的问题是,我不希望它褪色,直到鼠标让元素的区域消失为止。当新元素放在上面时,它现在很快就淡出了。很抱歉,混淆了,相同的代码可以用于该元素,只需将
onmouseout
替换为
onmouseover
<li id="menuitem" onmouseover="fadeOut(rel)">bar</li>
function fadeOut(rel){
$('#hover_'+rel).fadeOut()
}