如何在渲染的新元素上调用slideDown()?

时间:2017-05-24 20:18:02

标签: javascript jquery html

我有一个无序列表,里面的li元素是根据后端数组中的项目数来呈现的。

随着新项目添加到数组中,将呈现相应的li元素并在我的列表中弹出。是否可以为每个新的li元素赋予slideDown()动画?

1 个答案:

答案 0 :(得分:0)

是的,但您需要使用.on()或.live(),具体取决于您使用的JQuery版本。

http://api.jquery.com/on/

http://api.jquery.com/live/

好的,请尝试将此包装在函数

function doSlideDown(){
    $('ul > li > input[type="checkbox"]').on("click", function() {        

    var parent = $(this).parent("li");
    if($(this).is(":checked") === true) {
    // move to the top
    $(parent).slideUp(300, function() {
      $(parent).prependTo($(parent).parent());
      $(parent).slideDown(300);
    });
    } else {
      $(parent).slideUp(300, function() {
        $(parent).appendTo($(parent).parent());
        $(parent).slideDown(300);
      });
    }
});
}

然后将其添加到文档就绪函数之外

$(document).ajaxComplete(function() {
    doSlideDown();
});

每次运行一些ajax并附加一个新项目时,这将更新DOM。