我正在使用基于Grails的应用程序中的jQuery-UI对话框小部件来加载远程页面(在本例中,是一个简单的文件上载表单)。远程页面在我的项目的其他地方定义,并且不知道它正在对话框中加载。
有没有办法通过远程页面中的链接关闭对话框?当我加载页面时,我是否必须以某种方式传递对话框的引用,或者是否有办法触发close事件,同时保持对话框本身不可知?
答案 0 :(得分:1)
试试这个HTML:
<a href="#" id="btnDone">CLOSE</a>
和这个JavaScript:
$("#btnDone").click(function (e) {
e.preventDefault();
var dialogDiv = $("#btnDone").parents(".ui-dialog-content");
if (dialogDiv.length > 0) {
dialogDiv.dialog('close');
}
});
在您的远程页面中。它会查看它是否在对话框中,如果是,它将关闭它。如果没有,它什么都不做。
答案 1 :(得分:0)
如果你给对话框一个已知的ID,那么你可以使用jquery查找它(例如$('#mydialog')并通过远程页面上的脚本关闭它。唯一的问题可能是让JS在评估时被评估远程页面被加载到对话框中。