这是我的情景:
我的问题:在页面B中,如何引用对话框以便我可以对其进行一些操作?例如,在我从.ajax调用收到的页面B的内容中,通过.html(数据)添加到div中,有一个按钮,点击后我需要关闭对话框。
现在我的按钮在对话框内没有工作,因为其中一个关闭了对话框而另一个应该重定向到一个新页面,但现在都不起作用,因为我没有引用它操作它的对话框。所以我需要引用,所以我可以通过一些将驻留在PageB(数据)中的jQuery来关闭对话框。
答案 0 :(得分:1)
如果页面B由AJAX加载(而不是<iframe>
),则其中的任何Javascript都将在与页面A的其余部分相同的上下文中运行。
因此,您可以使用在页面A中使用的相同代码来引用第B页中的对话框 请注意,如果Page B也在其他地方使用,则需要先检查您是否实际在Page A内部运行。 (检查对话框是否存在,或者在页面A中设置了一些变量)
如果它在<iframe>
中,您可以使用parent
属性与父框架进行交互。
具体来说,您可以使用parent.$
在父框架的上下文中运行jQuery代码
例如:
parent.$('#someId').dialog(...);
由于它使用父页面中的$
函数,因此页面B不需要引用jQuery或jQuery UI。选择器将在父页面中匹配。
您可以(但不应该)通过编写parent.$('selector', document)
答案 1 :(得分:0)
这应该在成功ajax回调的页面A中完成,因为它是页面A,它引用了需要关闭的div
。
第A页:
$('div.Dialog').load('/pageB', function(data) {
$('#closeButtonOnPageB').click(function() {
// ... close dialog
});
});