代码之家  ›  专栏  ›  技术社区  ›  concept47

如何编写jquery来始终淡出特定类型的所有项

  •  1
  • concept47  · 技术社区  · 14 年前

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

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

    tldr;我正在尝试编写一段代码,它将淡出一个项,无论它是与DOM一起加载还是添加到DOM中(例如通过AJAX)。

    3 回复  |  直到 14 年前
        1
  •  1
  •   Adam    14 年前

    使用 livequery plugin .

    $(".fadeOut").livequery(function(){$(this).fadeOut()});
    
        2
  •  -1
  •   Nilesh    14 年前

    将div添加到dom时,为

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

    因此,现在所有属于淡出类别的对象都可以使用命令轻松淡出

    $(“淡出”类别)。应用淡出;

        3
  •  -1
  •   Steven    14 年前

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

    您需要将淡出包含在使项目首先出现的函数中。

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