javascript确认对话框有时会出现

时间:2016-05-14 06:38:23

标签: javascript jquery

您好我使用确认对话框确保用户操作。但是,当我在代码中看不到任何触发此内容的内容时,确认对话框会一再出现。这是一个错误吗?或者我做错了什么?

$('#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确认对话框。有时它表现正常,有时它出现两次,但有时无限。

更新

根据Parag Bhayani的建议,以下是在表#table_trans中添加一行的javascript

// msg是通过进行ajax调用收到的json响应

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;

            }

//对不起来感到沮丧....但请滚动到最右边看按钮,点击哪个触发事件。

1 个答案:

答案 0 :(得分:1)

只有当您的事件多次注册时才会发生这种情况,因此有一种情况可能导致此问题,即事件注册代码处于循环中,那么您的事件可能已经注册了多次。