Jquery FadeIn添加显示属性,而不是仅仅删除display:none

Jquery FadeIn adding display property instead of just removing display:none

本文关键字:删除 display none 添加 FadeIn 显示 属性 Jquery      更新时间:2023-09-26

我有一个任务列表在HTML..

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

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

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

它工作得很好,除了当用户在检查了一个任务后太快检查一个任务时,那么这段代码不会运行,并且元素保留了Jquery添加的display属性,这是因为我应用了一些其他样式而打破了列表。

我的问题是为什么fadeIn不运行时,另一个(fadeOut/fadeIn)启动太快,或者我怎么能阻止fadeIn添加属性。

类似于How fade to display: inline-block

使用jQuery动画来处理隐藏和显示你的元素通过不透明度而不是淡出,这样你的显示属性不受影响。