0
我在某些元素上使用jquery mouseenter/mouseleave函数。如果在页面加载时Jquery mouseenter事件挂起
在Mouseenter上有些内容通过ajax加载并向elemet添加菜单。在mouseleave上,菜单消失。
如果我在页面渲染时悬停这些元素,有时候这些元素不会消失。他们保持可见。我无法用演示代码重现此内容。
有什么建议吗?可能是.data()的问题?
$(document).on('mouseenter', '._hoverflow', channels.smallMenu);
$(document).on('mouseleave', '._hoverflow', channels.smallMenu);
toggleMenu: function(p,i){
if(p.data('loaded') === true ){
if(p.data('visible') === true){
i.stop(true,true).fadeOut('fast');
p.removeClass('fadet').data('visible',false);
}
else{
i.stop(true,true).fadeIn('fast');
p.addClass('fadet').data('visible',true);
}
return true;
} return false;
},
smallMenu: function(a){
var p = $(this), cid = parseFloat(p.data('id')), i = p.find('.channel-dropdown');
if(channels.toggleMenu(p,i)){ return false; }
p.addClass('fadet').data('loaded',true).data('visible',true);
var s = $.post(channels.vars.details, { id: cid });
s.done(function(data){ channels.menuTemplate(data, cid).appendTo(p).stop(true,true).fadeIn('fast'); });
},
内容加载只有一次,但你的代码是干净。错误仍然发生。有些事情工作。 add/removeClass('fadet')起作用。 fadeIn(),fadeOut()的东西不。页面加载后,运行很多JS,同时这样做的一些元素徘徊保持菜单可见,有时悬停效果相反,隐藏悬停显示离开... – user2429266
好的。我想我明白了。东西被加载,这需要一些时间,加载后调用fadeIn。这与页面加载没有任何关系。它在加载后淡入菜单。无论是否徘徊.. – user2429266
在这一行:s.done(function(data){channels.menuTemplate(data,cid).appendTo(p).stop(true,true).fadeIn('fast'); }); 我需要检查容器是否具有淡化类。如果不是不会淡入。 – user2429266