将JQuery添加到使用AJAX加载的内容中

时间:2011-08-05 20:14:15

标签: ajax jquery-ui jquery jquery-ui-sortable

我刚刚了解到你可以使用live()而不是bind()来确保在使用AJAX重新加载内容后仍然存在事件处理程序...但是我可以用其他添加的JQuery做什么,例如如.sortable()?我有一个UL,我需要在分类或添加后重新加载;但是在AJAX重新加载之后,排序工作不正常......

它并没有完全失去可分拣性,但拖拽变得更加困难;它会四处跳转,似乎会切换另外两个不是我试图拖动的部分。这只发生在部分重载之后;我的猜测是,当它重新加载时,我需要重新附加可排序的...我怎么能这样做?这是我的代码:

$("#sections").sortable({
                start: function (event, ui) {
                    startIndex = ui.item.index();
                },
                update: function (event, ui) {
                    $.ajax({
                        type: "POST",
                        url: "/Form/sortSections",
                        data: {
                            formID: '@(Model.formID)',
                            displayOrder: ui.item.index() + 1,
                            sectionID: $(ui.item).attr("id"),
                            startDisplayOrder: startIndex + 1
                        },
                        success: function (result) {
                            $.get("/Form/_AllSections/@(Model.formID)", function (data) {
                                $("#sections").html(data);
                            });
                        },
                        error: function (req, status, error) {
                            alert(error);
                        }
                    });
                }
            });

1 个答案:

答案 0 :(得分:3)

load事件与live()一起使用,以便每次将元素添加到DOM时都会运行。

http://api.jquery.com/load-event