目标:
启动jQuery UI对话框的页面名为advanced.php
。 UI对话框已启动并设置为也加载相同的脚本(advanced.php)。启动对话框后,我设置了一些JSON数据,并在此数据中包含一个标志,告诉advanced.php采取不同的行动。
// serialize the current form we want to pass into our script
var xData = $('#CONTROLLER').serialize();
// tack on a field that tells advanced.php to act differently
xData = xData + '&PLOTIT=1';
cURI = '/advanced.php';
$dialog = $('<div id="advanced-data"></div>').load(cURI, xData)
.dialog(
{ close : function(event, ui) { $(this).remove(); },
title : cTitle,
method : 'POST',
autoOpen : false,
width : 1024,
height : 400,
dataType : "json",
data : xData,
resizable : true,
modal : false,
show : 'blind',
hide : { effect: 'blind', duration: 300 },
dialogClass : 'Contact'
}
).data('parent', $parent);
$dialog.dialog('open');
弹出jQuery UI对话框并加载页面。不幸的是,似乎没有维护advanced.php创建的DOM之间的逻辑分离。也就是说,当对话框加载时,显示通常隐藏的所有表单元素。发布:
$('.maincontent').hide();
(其中maincontent
是包含所有DOM的<div>
)什么都不做。似乎jQuery UI对话框中包含的文档上的JavaScript也无效。
不是重写脚本,而是希望这里有一些简单的东西,这将导致jQuery UI对话框中的脚本工作。