2017-08-12 34 views
0

我想用Jquery帮助删除记录。获取行ID并删除该行。当我第一次单击按钮数据删除罚款,但下次当jQuery $ .post呈现中继器表比单击按钮上delte功能不工作。我找不到这个问题的原因。 我jQuery代码发布数据不按预期工作在jquery中Ajax

$(".delButton").click(function() { 
     debugger; 
     alert("delclick"); 
     var delID = $(this).parent().parent().children().html(); 
     $.post("CallBacks/AddProducts.aspx", { DeleteID : delID}, 
      function (data, status) { 

        debugger; 
        var start = data.indexOf("###Start###") + 11; 
        var end = data.indexOf("###End###"); 
        var subdata= data.substring(start,end); 
        $("#productTbody").html(subdata); 

       }); 
      }); 

我问报时表的形式主要类是:

<tbody id="productTbody"> 

        <asp:Repeater id="repeaterProducts" runat="server" > 
       <ItemTemplate> 
        <tr> 
         <td ><%# Eval("id") %></td> 
         <td><%# Eval("Name") %></td> 
         <td><%# Eval("ColourName") %></td> 
         <td><%# Eval("GageName") %></td> 
         <td><%# Eval("Rate") %></td> 
         <td><input class="delButton" type="button" value="del"/></td> 

        </tr> 
       </ItemTemplate> 
      </asp:Repeater> 



        </tbody> 

同一转发器是第二类AddProducts

###Start### 
       <asp:Repeater id="repeaterProducts" runat="server" > 
       <ItemTemplate> 
        <tr> 
         <td ><%# Eval("id") %></td> 
         <td><%# Eval("Name") %></td> 
         <td><%# Eval("ColourName") %></td> 
         <td><%# Eval("GageName") %></td> 
         <td><%# Eval("Rate") %></td> 
         <td><input class="delButton" type="button" value="del"/></td> 

        </tr> 
       </ItemTemplate> 
      </asp:Repeater> 

###End###   

回答

1

代表的Click事件的使用,而不是:

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

务必:

$(document).on('click', '#delButton', function() { 

这样一来,该事件被绑定到文件,所以当你的元素被重新呈现,他们仍然会发现 - 你的点击会工作。

+0

现在的问题是,当我点击其他事件时,他们称之为这个功能,即使他们没有课.delButton –

+0

我已经更新了我的答案,使用'on',我应该写在第一位。 – Stuart

+0

谢谢....它的工作原理。你很棒 –