我有以下模式对话框点击函数
$("#foo").click(function(){$("#bar").dialog({
width: 400,
modal: true,
resizable: false,
buttons:{
"Save": function(){
$.post('remote_foo.php', $('#waka').serialize(), function(data){
$('#list').html(data);})
$(this).dialog("close");
$('.dial').val('');
$('.url').val('http://');
},
"cancel": function(){
$(this).dialog("close");
}
}//end of buttons
}).('open');//end of jquery dialog
})// end of click function
它在firefox中运行良好,但老实说,我甚至不认为我的点击功能设置正确。
1)这是通过单击打开对话框的正确方式吗?2)这在chrome/internet explorer中不起作用有什么特别的原因吗?(这是jquery ui)
发布于 2011-11-30 09:45:36
不,这不是您打开对话框的方式。我们来看一下这个:
$(function () {
$("#foo").click(function(){
$("#bar").dialog('open');
});
$("#bar").dialog({
autoOpen: false,
width: 400,
modal: true,
resizable: false,
buttons:{
"Save": function(){
$.post('remote_foo.php', $('#waka').serialize(), function(data){
$('#list').html(data);})
$(this).dialog("close");
$('.dial').val('');
$('.url').val('http://');
},
"cancel": function(){
$(this).dialog("close");
}
}//end of buttons
}); // end of dialogInit
})// end of document ready
基本上,每次单击都会重新初始化对话框。相反,在document ready上初始化它一次,然后使用单击事件打开/关闭它。
只需调用一次DOM对象上的对话框设置调用,即可为各种与jQuery UI相关的任务准备该对象。准备好后,您可以只使用.dialog('open')和.dialog('close'),并且每次都会保留它的配置。
发布于 2011-11-30 09:49:34
您是否已尝试从对话调用的末尾删除.('open')?这不应该是显示对话框所必需的(甚至不确定它是否是有效的调用),并且可能是跨浏览器问题的根源。
https://stackoverflow.com/questions/8320138
复制相似问题