使用Jquery添加可排序内容

时间:2013-01-03 08:49:51

标签: jquery jquery-ui-sortable

我有一个带有可排序元素的页面。这是页面代码的一部分:

...
<head>
   <script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
   <script src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
   <script src="http://code.jquery.com/mobile/1.2.0/jquery.mobile-1.2.0.min.js"</script>
   <script>
        $(function() {
            $( ".sortable" ).sortable();
            $( ".sortable" ).disableSelection();
        });
   </script>
</head>
<div id="screen-page" data-role="page" data-theme="c">
</div>
...

我在动态加载“屏幕页面”HTML内容 - 使用$('#screen-page')。append(html) - 从数据库加载。这个内容就像:

<div data-role="header">Hello</div>
<div id="screenBody" data-role="content" class="sortable">
   (div elements)
</div>
<div id="...">...</div>

问题是:加载该内容后,“screenBody”中的元素无法排序。我认为问题是在加载页面后添加可排序的DIV(“screenBody”),因此脚本不适用于“新”内容。

我该如何解决这个问题?

非常感谢!

2 个答案:

答案 0 :(得分:0)

在加载内容后,您应该在$( ".sortable" ).sortable();来电后立即致电$("#screen-page").append(html);

例如,使用jQuery.get

$.get('/get-screenpage-content.php', function(html){
   $('#screen-page').append(html);
   $('.sortable').sortable();
   $('.sortable').disableSelection();
});

您是否可以展示用于向#screen-page div添加内容的代码?

答案 1 :(得分:0)

解决。我添加了这段代码:

$("#screen-page").on("DOMSubtreeModified", function() {  
    $( ".sortable" ).sortable();
    $( ".sortable" ).disableSelection();
});