如何编写jquery以使某一类型的所有项始终淡出

如何编写jquery以使某一类型的所有项始终淡出,jquery,Jquery,所以。。。我知道如何淡出添加到dom中的项目(在本例中是一条成功/错误消息),但我现在的做法是编写代码,在加载dom时淡出我需要的特定项目,但在通过AJAX添加项目时也编写单独的淡出代码 有没有更优雅的方法来处理这个问题? 我研究了如何使用.live()处理程序,但这需要将事件作为其参数之一传入(不太好,因为我只希望该项在设定的时间段后淡出,不管发生什么情况) tldr;我正在尝试编写一段代码,它将淡出一个项目,不管它是使用DOM加载还是添加到DOM中(例如通过AJAX) 使用 将div添加到d

所以。。。我知道如何淡出添加到dom中的项目(在本例中是一条成功/错误消息),但我现在的做法是编写代码,在加载dom时淡出我需要的特定项目,但在通过AJAX添加项目时也编写单独的淡出代码

有没有更优雅的方法来处理这个问题? 我研究了如何使用.live()处理程序,但这需要将事件作为其参数之一传入(不太好,因为我只希望该项在设定的时间段后淡出,不管发生什么情况)

tldr;我正在尝试编写一段代码,它将淡出一个项目,不管它是使用DOM加载还是添加到DOM中(例如通过AJAX)

使用


将div添加到dom时,为例如

<div ...class="your_usual_class fadeout_category other_classes"...>

因此,现在所有属于“淡出”类别的对象都可以通过命令轻松淡出

$(“.fadeout\u category”)。应用fadeout

解决问题的最“优雅”的解决方案不是使用
.live
,它侦听特定DOM节点的更改(始终为选择器使用上下文;回调会大大降低复杂页面的速度),然后在满足选择器条件的情况下应用正常回调

您可能希望将淡出功能包括在使项目首先出现的功能中

namespace.showMessage = function(message) {
  $('<div class="message">').text(message).appendTo('body').fadeOut(function(){
    $(this).remove();
  });
}
namespace.showMessage=函数(消息){
$(“”).text(message).appendTo('body').fadeOut(function(){
$(this.remove();
});
}

我正在试图理解是什么触发了淡出…是否需要一个选择器来知道dom元素是由源html呈现的还是在初始呈现后添加的?hmmm@TJB ... 想想jquery中的.live()调用以及它是如何工作的。。。这就是我想为这些做的items@superfro我不需要它知道这些。这正是我现在正在做的,我不想再做了。在这种情况下,livequery是您想要的,但我建议您不要这样做。我自己也曾多次使用livequery,在每一种情况下,我都会重构以删除它,因为跟踪所有的livequery太难了。祝你在应用程序中好运。我不想单独调用以淡出此项目,我希望它像我使用.live()时一样自动淡出。。。仅.live()需要一个事件类型作为其参数之一。这看起来可能就是我要找的。
namespace.showMessage = function(message) {
  $('<div class="message">').text(message).appendTo('body').fadeOut(function(){
    $(this).remove();
  });
}