在.load动作之后禁用jQuery .click

时间:2010-01-27 14:49:05

标签: jquery load

尝试设置一个很好的拖放保存到数据库页面。 它也应该能够删除这些行,我使用了一个列表(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
});

1 个答案:

答案 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); 
  }
   });

});