2017-08-12 35 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

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