日期:2014-05-16  浏览次数:20322 次

JQUERY新增元素的事件绑定问题
求一个事件绑定的问题,
页面已经有了3个按钮,name都为name='btnDel'
页面加载的时候 通过ready绑定了处理逻辑:
 //删除行
  $("input[name='btnDel']").click(
  function() {
  if (window.confirm("确定要删除吗?")) {
  var count = 0;
  $(this).parents("tr").remove();
  //给Table的索引重新排序
  $("tr>td:nth-child(1)").each(
  function() {
  $(this).text(++count);
  }
  );
  }
  }
  );

页面有个add按钮,点击一次增加1个新的name为'btnDel'的按钮,请问此时如何绑定事件呢?
var $newObj = $("<tr><td>" + ($newIndex + 1) + "</td><td>" + $txtObj.val() + "</td><td><input type='button' name='btnEdit' value='Edit' /></td><td><input type='button' name='btnDel' value='Delete' /></td></tr>");
  $tableObj.append($newObj);

------解决方案--------------------
$("input[name='btnDel']").live('click',function() {
if (window.confirm("确定要删除吗?")) {
var count = 0;
$(this).parents("tr").remove();
//给Table的索引重新排序
$("tr>td:nth-child(1)").each(
function() {
$(this).text(++count);
}
);
}
}
);



动态生成的dom用live来绑定事件