【问题标题】:Jquery FadeIn adding display property instead of just removing display:noneJquery FadeIn 添加显示属性而不是仅删除显示:无
【发布时间】:2015-11-08 15:36:27
【问题描述】:

我有一个 HTML 格式的任务列表..

当一个任务完成后,jquery 淡出 li,将它移到列表的底部,添加“选中”类,然后淡入.. 一切都很好,除了淡入时,它不仅删除了display:none 使用 FadeOut 添加的属性,但添加了内联样式 display:list-item(或元素在隐藏时具有的任何其他显示属性)

我需要 li 和之前完全一样,所以在fadeIn 之后,我这样做:

            li.fadeIn(function(){
                //remove display property
                li.css('display', '');
            });

它工作正常,除非用户在检查一项任务后太快地检查一项任务,然后这段代码不会运行,并且该元素保留了 Jquery 添加的显示属性,由于某些原因而破坏了列表我应用的其他样式。

我的问题是为什么当另一个 (fadeOut/FadeIn) 启动太快时淡入不运行,或者我如何阻止淡入添加属性。

【问题讨论】:

  • 可以在 Question 中包含html 吗,创建 stacksn-ps , jsfiddle jsfiddle.net 来演示?

标签: javascript jquery html css


【解决方案1】:

类似于How to fade to display: inline-block

使用 jQuery animate 通过 opacity 而不是 fadeIn 来处理元素的隐藏和显示,这样您的 display 属性就不会受到影响。

【讨论】: