我有以下功能:

'countyOfflineNote': function (county) {
    console.log(county);
    console.log('logged county');
    var extra = '';
    extra = '...more logic...';

    var message = '...some logic...';


    var title = 'Create Offline County Note for ' + county.county;
    $('body').appModal({
        appliedTo: '',
        title: title,
        type: '',
        message: 'Please enter a note for the current county status',
        submessage: '',
        template: 'simple',
        contents: message,
        cancel: "<input type='button' value='Cancel' class='button action left cancel' onclick='$EP.modules.appModal.cancel(\"" + county "\");' />",
        icon: 'info',
        callback: ''
    });

    $('#support-question').focus();
}


我遇到的问题是输入HTML。当我们将county传递给cancel()函数时,我最终在控制台中看到[object Object]。如何更改传递参数的方式?

这是cancel()函数:

'cancel': function (county) {

    county.isOffline = !county.isOffline;
    $EP.modules.appModal.close();
}

最佳答案

如果您的$('body').appModal({...})代码向DOM中添加了元素,您可以1)从onclick属性中的输入html中删除cancel处理程序,2)在该输入html中添加一个inputId这样的ID,并附加一个将元素附加到DOM之后的事件处理程序-将此代码放在$('body').appModal({...})下:

$('#inputId').click( function(county) {
    county.isOffline = !county.isOffline;
    $EP.modules.appModal.close();
})


更确切地说:

$('#inputId').click( function() {
    county.cancel();
})


并将cancel方法添加到county对象:

cancel = function() {
    this.isOffline = !this.isOffline;
    $EP.modules.appModal.close();
}

关于javascript - onclick()参数成为对象Object,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34622031/

10-13 08:54