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

USE*_*309 1 jquery modal-dialog onclick

我今天有一个大脑放屁或其他东西,因为当我设置一个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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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

ant*_*rat 5

发生这种情况是因为您实际调用了函数并且从return语句中传递了处理函数执行结果.

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

$('#confirmRecipientDeletion').on('click', function() {
    myJsFunctions.deleteRecipient(index);
});
Run Code Online (Sandbox Code Playgroud)