我有以下功能:
'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();
}
答案 0 :(得分:1)
如果您的$('body').appModal({...})
代码正在向DOM添加元素,您可以1)从onclick
属性中的输入html中删除cancel
处理程序,2)添加到此输入html和id类似于inputId
,并在元素附加到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();
}
答案 1 :(得分:0)
您可以在使用JSON.stringify()与该元素连接之前对县对象进行字符串化,然后您将对象作为字符串。
在函数声明中,您需要将该字符串解析为对象,因为您可以使用JSON.parse()
'cancel': function (county) {
county = JSON.parse(county);
county.isOffline = !county.isOffline;
$EP.modules.appModal.close();
}