首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jquery .stop()不工作

问jquery .stop()不工作
EN

Stack Overflow用户
提问于 2011-03-23 22:38:57
回答 3查看 8.9K关注 0票数 6

我正在尝试构建一个菜单,其中默认情况下只显示第一项,当您将鼠标悬停在它上面时,其余的项将滑出,并在鼠标离开时再次隐藏。它大部分都在工作,但是如果鼠标在滑出之前就退出了,隐藏函数就不会被调用。我认为stop()应该处理这件事,但它似乎没有任何影响。

代码语言:javascript
复制
$(function(){
    $("#menubar").children(".breadcrumbs").children("li + li").hide();

    $("#menubar .breadcrumbs").hover(function() {
        $(this).children("li + li").stop().show("slide", {}, 'slow');
    }, function() {
        $(this).children("li + li").stop().hide("slide", {}, 'slow');
    });
});

jsFiddle demo

有没有人看到我做错了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-23 22:49:39

我不是最伟大的动画天才,但我打赌这与您在每个处理程序中重新构建jQuery对象的事实有关。试试这个:

代码语言:javascript
复制
$(function(){
    var children = $('#menubar .breadcrumbs').children('li + li');
    children.hide();

    $("#menubar .breadcrumbs").hover(function() {
        children.stop().show("slide", {}, 'slow');
    }, function() {
        children.stop().hide("slide", {}, 'slow');
    });
});

edit - @melee在评论中指出,这种特定设置的行为并不总是稳定的。如果您小心地将鼠标悬停在"Home“<li>的右边缘(靠近">”字符),则有时动画会出现异常。目前还不清楚原因,但浏览器只是对元素应该呈现在哪里感到非常困惑。

票数 7
EN

Stack Overflow用户

发布于 2011-03-23 22:40:47

STOP(),function,(true,true),(false,false)有一些参数,你有没有试过改变这些参数来改变你想要的效果?

票数 0
EN

Stack Overflow用户

发布于 2011-03-23 22:50:07

stop函数的定义为

代码语言:javascript
复制
.stop( [ clearQueue ], [ jumpToEnd ] )

官方网站是..。

clearQueue:一个布尔值,指示是否也删除队列动画。默认为false。

jumpToEnd:一个布尔值,指示是否立即完成当前动画。默认为false。

这是来自http://api.jquery.com/stop/的

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5406903

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档