Jquery:需要帮助理解为什么它同时隐藏和显示列表元素,我在脚本中是否自相矛盾

Jquery: Need help understanding why its hiding and showing list elements at the same time, am i contradicting myself in the script?

本文关键字:列表元素 显示 自相矛盾 是否 脚本 隐藏 帮助 助理 为什么 Jquery      更新时间:2023-09-26

(无动画:看起来不错)http://jsfiddle.net/nicktheandroid/4QaZD/

它是一个可筛选的列表。每个LI都包含一个隐藏的单词列表,当您在中键入其中一个隐藏单词时,会显示其父级(LI)。它在没有附加slideUp/slideDown或FadeIn/FadeOut动画的情况下工作得很好,但一旦我添加动画,它就会很快地slideDown然后slideUp,所以不知何故,我在脚本中自相矛盾,或者没有正确地分离功能?我花了这么多小时想弄清楚这一点,我的脑子都快累坏了。有人能告诉我我做错了什么吗?我很确定这会是我看不到的显而易见的事情。我所要做的就是让它向上/向下滑动,而不是立即隐藏/显示。

在第二个jsfiddle中,我用.slideDown(400)替换了.removeClass("hidden"),用.slideUp(400) 替换了.addClass("hidden")

(动画:有问题)http://jsfiddle.net/nicktheandroid/4Lcx3/

直到键入3个字符后,它才开始过滤。

每次击键都会将新效果添加到动画队列中,并且过滤的工作方式会不断变化,从而在之前的效果完成之前将更多效果添加到队列中。

在向队列中添加更多项目之前,应使用stop(true,true)清除以前排队的项目。

示例:http://jsfiddle.net/niklasvh/HWnaT/

如果匹配的结果与上一次keydown之前的结果相同,您可能希望添加一些逻辑以避免执行任何操作。