在附加新行中添加类

时间:2012-07-26 16:17:29

标签: jquery asp.net html

  $("#btnAdd").click(function () {
    $.ajax({
      type: "POST",
      url: "View.aspx/AddResponsibility",
      data: '{"ClientCode":"' + $("#hfClientCode").val() + '","ResponsibilityCode":"' + $("#txtResponsibility").val() + '"}',
      async: true,
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      success: function (msg) {
        $('#tblRespon > tbody:last').append("<tr><td>" + $("#txtResponsibility").val() + "</td><td>" + $("#txtFullName").val() + "</td><td><a class='delete' id='btnDelete' name='btnDelete' value='" + $("#txtResponsibility").val() + "'>" + "Delete" + "</a></td></tr>");
      },
      error: function (msg) {
        alert(msg.d);
      }
    });
  });

我需要在'&lt;中添加一个类一个&GT;”这是我要添加的新元素。我上面尝试的方式似乎不是作为函数

$(".delete").click(function () {

不会像通常使用页面上已包含的元素一样触发。

3 个答案:

答案 0 :(得分:2)

这是因为您之后注入DOM的锚标记。这意味着无论您将点击功能绑定在何处,它都不会对新注入的元素产生任何影响。

解决方案是使用jQuery onon将适用于当前和futere元素。

更改此

$(".delete").click(function () {
   //some code here
})

$(document).on("click",".delete",function () {
  //some code here
})

on可从 1.7 + 版本获得。如果您使用的是早期版本,请考虑使用live()

答案 1 :(得分:1)

您需要使用.on()这样的功能:

$("#tblRespon").on("click",".delete",function(){

答案 2 :(得分:0)

如果我是正确的,您需要将删除处理程序重新分配给添加的元素:

success: function (msg) {
        $('#tblRespon > tbody:last').append("<tr><td>" + $("#txtResponsibility").val() + "</td><td>" + $("#txtFullName").val() + "</td><td><a class='delete' id='btnDelete' name='btnDelete' value='" + $("#txtResponsibility").val() + "'>" + "Delete" + "</a></td></tr>");

        $('.delete').click(function(){
           //your code
        })

},

我知道有更好的方法,但只需要知道每次添加元素时都应该为这些添加的元素注册处理程序