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

jquery on('click', function()) triggering unexpectedly

我今天脑子放屁什么的,因为当我设置一个 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

发生这种情况是因为您实际调用了您的函数,并且作为处理程序函数执行结果从 return 语句传递。

您应该改为传递函数处理程序:

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

您在单击 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();
}

}