尝试设置一个很好的拖放保存到数据库页面。 它也应该能够删除这些行,我使用了一个列表(ul / li)。一切正常,但只要加载动作完成它的工作,“$(”#menuList> li> .remove“)。点击”将不再工作。其余的行动起作用,拖拉和放大drop,序列化为oder,写入数据库... 谁能看到导致这个问题的原因?
function sortTableMenu() {
var order = $('#menuList').sortable('serialize');
$.post("PLUGINS/SortableMenu/process-sortable.php",order);
$("#menuList").load("PLUGINS/SortableMenu/sortableMenu_ajax.php");
}
$("#menuList > li > .remove").click(function () {
var removeID = $(this).attr('id');
$.ajax({
type: 'post',
url: 'PLUGINS/SortableMenu/removeLine.php',
data: 'id='+removeID,
success: function () {
$('#listItem_'+removeID).remove();
var order = $('#menuList').sortable('serialize');
$.post("PLUGINS/SortableMenu/process-sortable.php",order);
}
});
});
$('#new_documents > li').draggable({
addClasses: false,
helper:'clone',
connectToSortable:'#menuList'
});
$("#menuList").droppable({
addClasses: false,
drop: function() {
var clone = $("#menuList > li#newArticleTYPE1");
$(clone).attr("id","listItem_newArticleTYPE1");
}
});
$("#menuList").sortable({
handle : '.handle, .remove',
update : sortTableMenu
});
答案 0 :(得分:1)
您要将附加事件的实际DOM元素替换为新元素,这需要.live()
use:
$("#menuList > li > .remove").live('click',function () {
var removeID = $(this).attr('id');
$.ajax({
type: 'post',
url: 'PLUGINS/SortableMenu/removeLine.php',
data: 'id='+removeID,
success: function () {
$('#listItem_'+removeID).remove();
var order = $('#menuList').sortable('serialize');
$.post("PLUGINS/SortableMenu/process-sortable.php",order);
}
});
});