jQuery Sortable新附加的元素无法识别

时间:2011-04-05 02:20:15

标签: jquery jquery-ui refresh jquery-ui-sortable

jQuery UI可排序方法refresh如何工作。我有多个span标记,里面有P个标记。 P代码可以从span到另一个$('span').sortable('refresh')进行排序。但是当我在里面添加带有p标签的新跨度时,无法识别新的P标签。刷新方法应该使新添加的可识别。但它似乎没有工作或做任何事情。 {{1}}。

检查http://jsfiddle.net/ySP96/2/

2 个答案:

答案 0 :(得分:2)

我认为问题在于refresh正在寻找仅使用.sortable()初始化的容器的子元素。您要添加子元素容器,因此需要使用.sortable()初始化这些新容器,而不是使用.sortable('refresh')

$('#span').click(function() {
    var x = '<span><p>NEW Span</p></span>';
    $(x).appendTo('#form').sortable({connectWith: 'span'});
});

请参阅更新的演示:http://jsfiddle.net/ySP96/3/

答案 1 :(得分:0)

您必须手动执行以下操作:

$("#MyList").sortable({
        update: function() {
            var postData = $(this).sortable("serialize");
            $.post("UpdateItemOrder.aspx", postData, function(theResponse) {
                $("#ResultsArea").html(theResponse);
            });
        },
        beforeStop: function(event, ui) {
            // Handle new items only
            if ($(ui.item).hasClass("new-item")) {
                // Refresh the list
                var postData = $("#MyList").sortable("serialize");
                    $.post("UpdateItemOrder.aspx", postData, function(theResponse) {
                        $("#ResultsArea").html(theResponse);
                    });
            }
        });
});