到目前为止的研究:我发现一个答案建议使用全局变量声明来使对话框代码可以使用全局变量,但我认为这是一种霰弹枪方法。我希望专门传递一个变量:我的.dialog框。
问题:无法将参数传递给对话框的close:部分。
最近我尝试过这段代码,它遵循表单submit():
document.forms['dsEntryForm'].submit();
myTalk.data('timestamp', timestamp); //assign the ID for later
myTalk.dialog("close");
... myTalk 是分配给我的对话框的变量,时间戳是UTC值,在关闭时我希望它执行一系列操作:
close: function(data){
clearForm(document.forms['dsEntryForm']);
CKEDITOR.instances.editor.setData('');
if(document.getElementById('formsubmitted')){
document.getElementById('formsubmitted').parentNode.removeChild(document.getElementById('formsubmitted'));
}
getNewMessage(data.timestamp);
}
但是,当我使用alert(data.timestamp);
调试 data.timestamp 的值时,结果为未定义。
答案 0 :(得分:4)
对话框close
事件会收到参数event
和ui
,没有您尝试使用的数据。
如果您使用data-timestamp
属性设置了数据,那么您可以在关闭事件中访问它,如下所示:
close: function(){
console.log( $(this).data('timestamp') );
}