我已经制定了条款和条件页面。我想让它出现在jQuery对话框中。
我为对话框声明了一个变量:
var $dialog = $('#TCsWindow').html('<iframe style="border: 0px;" src="importantInformation.html" width="100%" height="100%"></iframe>').hide();
然后创建一个打开对话框的函数:
function opendialog(page) {
$dialog.dialog({
title: "",
autoOpen: false,
dialogClass: 'dialog_fixed TCdialog centered',
modal: true,
height: 500,
width:400,
responsive: true,
draggable:true,
open: function (event, ui) {
$('#TCsWindow').css('overflow', 'hidden'); //this line does the actual hiding
}
});
$dialog.dialog('open');
}
最后将click()事件附加到页面上的元素:
$("#TCLink").click(function(event) {
event.preventDefault();
opendialog("importantInformation.html");
});
我遇到的问题是,在importantInformation.html页面中有一个链接,点击它时只需要关闭对话框。该链接的ID为&#34; closeTC&#34;:
$("#closeTC").click(function(event){
$dialog.close();
});
但是会发生的是实际包含页面在iFrame中加载。看来event.preventDefault();被忽略了。
任何人都可以了解我出错的地方吗?默认关闭&#34; x&#34;在对话框上工作得很好,但我不知道如何找到它是如何工作的。
答案 0 :(得分:0)
该对话框位于父窗口中,而不在iframe内,可以使用parent
从iframe访问父窗口中的元素。
$(parent.document).find('#TCsWindow').dialog( "close" );
答案 1 :(得分:0)
答案 2 :(得分:0)
您需要从父级调用jQuery .dialog("close")
方法:
请参阅此answer以供参考。
守则
$(parent.document).find('#TCsWindow').dialog( "close" );