(无动画:看起来不错)http://jsfiddle.net/nicktheandroid/4QaZD/
它是一个可过滤的列表。每个 LI 都包含一个隐藏的单词列表,当您键入其中一个隐藏单词时,会显示其父项(LI)。它在没有附加 slideUp/slideDown 或 FadeIn/FadeOut 动画的情况下工作正常,但是一旦我添加动画,它会 slideDown 然后 slideUp 非常快,所以不知何故我在脚本中自相矛盾,或者没有正确分离功能?我花了很多时间试图解决这个问题,我的大脑被绞尽脑汁。有人可以告诉我我做错了什么吗?我很确定它会是一些我无法看到的显而易见的东西。我想要做的就是让它向上/向下滑动而不是即时隐藏/显示。
在第二个 jsfiddle 中,我用 .slideDown(400)
替换了 .removeClass("hidden")
并替换了 .addClass("hidden")
与 .slideUp(400)
(动画:有问题)http://jsfiddle.net/nicktheandroid/4Lcx3/
输入 3 个字符后才开始过滤。
最佳答案
每次击键都会向动画队列添加新效果,并且过滤的工作方式会不断变化,从而导致在之前的效果完成之前将更多效果添加到队列中。
在向队列中添加更多项目之前,您应该使用 stop(true,true)
清除之前排队的项目。
示例:http://jsfiddle.net/niklasvh/HWnaT/
如果匹配结果与上一次按键之前的结果相同,您可能希望添加一些逻辑来避免执行任何操作。
关于javascript - Jquery:需要帮助理解为什么它同时隐藏和显示列表元素,我在脚本中自相矛盾吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6397479/