如果用户在文档准备好之前悬停,jQuery .hover 会导致问题
除了一种情况外,下面的代码效果很好。如果用户在文档准备好之前将鼠标悬停在元素上,则 SlideToggle 会不同步(或反转)。
所以结果是 #logged_in_nav 在鼠标移开时显示,并且在悬停时该框消失。有什么简单的方法可以解决这个问题?
$("#logged_in_box").hover(function(){
$("#logged_in_nav").stop(true, true).slideToggle("fast");
$(this).addClass("logged_in_box_hover");
}, // hover over
function() {
$("#logged_in_nav").stop(true, true).slideToggle("fast");
$(this).removeClass("logged_in_box_hover");
} // hover out
); // hover
The below code works great except for one condition. If the user is hovering over the element before the doc ready, the slideToggle gets out of sync (or reversed).
So the result is the #logged_in_nav is showing on mouseout and on hover the box disappears. What is a simple method to fix this?
$("#logged_in_box").hover(function(){
$("#logged_in_nav").stop(true, true).slideToggle("fast");
$(this).addClass("logged_in_box_hover");
}, // hover over
function() {
$("#logged_in_nav").stop(true, true).slideToggle("fast");
$(this).removeClass("logged_in_box_hover");
} // hover out
); // hover
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不要使用
slideToggle
。使用slideDown()
(docs) 和slideUp()
(文档) 相反,方向明确地与事件类型相关联。Don't use
slideToggle
. UseslideDown()
(docs) andslideUp()
(docs) instead so the direction is explicitly tied to the event type.