jQuery live and sortable

时间:2010-12-01 11:03:12

标签: javascript ajax jquery-ui jquery

我有以下静态html:

<ul id="mylist">
    <li id="li_10"><a href="10">Item 10</a></li>
    <li id="li_20"><a href="20">Item 20</a></li>
    <li id="li_30"><a href="30">Item 30</a></li>
    <li id="li_40"><a href="40">Item 40</a></li>
    <li id="li_50"><a href="50">Item 50</a></li>
</ul>

我有以下jQuery:

<script>
    $( document ).ready( function() { 
        $("#mylist").sortable(
            {axis:"y"}
        );
    });
</script>

这很有效,但是一旦我使用jQuery / AJAX生成上面的HTML就停止工作。所以我假设我需要在jQuery中使用“live”函数来执行可排序部分。有人可以帮我实现吗?

1 个答案:

答案 0 :(得分:6)

.live()是基于事件的,所以你不能将它用于这样的插件。您可以轻松做的是在AJAX调用结束时调用该代码,例如:

$.ajax({
 //options...
  success: function(data) {
    //create UL
    $("#mylist").sortable({axis:"y"});
  }
});

$.ajax()的缩写形式也是如此,例如:

$("#mylist").load("pageThatGivesTheLIElementGoodness.htm", function() {
  $(this).sortable({axis:"y"});
})