2016-05-14 68 views
1

你好我正在使用確認對話框來確保用戶的操作。但是確認對話框不斷出現,而我在代碼中沒有看到任何觸發這個的東西。這是一個錯誤嗎?還是我做錯了什麼?JavaScript確認對話框不斷出現

$('#table_trans tbody').on('click', 'tr td button', function() { 
    var trans_id = $($(this).parents(':eq(1)')[0].childNodes[0]).html(); 
    var r = confirm("Sure!"); 

    if (r == true) { 
     $.ajax({ 
      url: '?r=transactions/ajaxdelete', 
      data: { 
       id: trans_id 
      }, 
      success: function(response) { 
       $.notify(response, "error"); 
      } 
     }); 
     $($(this).parents(':eq(1)')).remove(); 

    } else { 
     alert("Action Cancelled!"); 
    } 
}); 

還有一件事要補充,它只是有時會發生Javascript確認對話框不斷出現。有時它的行爲是正確的,有時會出現兩次,但有時是無限的。

UPDATE

如所建議的通過Parag Bhayani,下面是增加了一個行表#table_trans

// msg的JavaScript通過調用Ajax

for (var i = 0, l = msg.length; i < l; i++) { 
        var rowz = "<tr><td>" + msg[i].id +"</td><td>"+msg[i].account_no+"</td><td>" + msg[i].date_of_transac +"</td><td>"+msg[i].description+"</td><td>"+msg[i].amount+"</td><td><button id=\"delete_trans\">Delete</button></td><tr>"; 
        tbl_html = tbl_html + rowz; 

      } 
接收的JSON響應

//對不起,不好意思....但是請滾動到最右邊看到按鈕,點擊它觸發事件。

+0

點擊確認時它是如何出現的?您是否將所有相關代碼添加到OP? – guradio

+0

此確認出現多少次? 你是否也會發送該事件註冊的代碼? –

+3

在這裏,可能會導致此問題的一個案例,如果此事件註冊代碼在循環中,那麼您的事件可能已註冊n次,並且可能導致此問題 –

回答

1

只有當您的事件多次註冊時纔會發生這種情況,因此可能會導致此問題的一種情況是,事件註冊代碼處於循環狀態,則您的事件可能已註冊n次。

+0

請根據我所做的更新,添加關於我的代碼的示例。因爲StackOverflow在8分鐘之前不允許接受:) –