jquery on(' click',function())意外触发

时间:2015-10-30 13:09:49

标签: jquery onclick modal-dialog

我今天有一个大脑放屁或其他东西,因为当我设置一个on('click')事件时,它就像被点击一样被触发。

var myJsFunctions = {
    confirmDelete: function (index) {
        $('#deleteRecipient').modal('show');
        $('#confirmRecipientDeletion').on('click',myJsFunctions.deleteRecipient(index));
    },

    deleteRecipient: function (index) {
        $('#deleteRecipient').modal('hide');
        $('#recipientIsDeleted_' + index).val(true);
        $('#recipient_' + index).hide();
    }
}

但是当我点击触发confirmDelete的按钮时,它也会一直运行myJsFunctions.deleteRecipient

2 个答案:

答案 0 :(得分:5)

这是因为您实际调用了函数并且从return语句作为处理函数执行结果传递。

你应该传递函数处理程序:

$('#confirmRecipientDeletion').on('click', function() {
    myJsFunctions.deleteRecipient(index);
});

答案 1 :(得分:0)

您在单击jquery语法时犯了错误。 像这样改变你的代码:

var myJsFunctions = {
confirmDelete: function (index) {
    $('#deleteRecipient').modal('show');
    $('#confirmRecipientDeletion').on('click',function(){
       myJsFunctions.deleteRecipient(index);
    });
},

deleteRecipient: function (index) {
    $('#deleteRecipient').modal('hide');
    $('#recipientIsDeleted_' + index).val(true);
    $('#recipient_' + index).hide();
}

}