2016-07-04 120 views
0

我已经提出了条款和条件页面。我想让它出现在jQuery对话框中。如何关闭jQuery UI对话框点击对话框内的链接

我声明一个变量对话框:

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'); 
} 

,最后点击()事件附加到一个元素在页面上:

$("#TCLink").click(function(event) { 
    event.preventDefault(); 
    opendialog("importantInformation.html"); 
}); 

我的问题是,有一个链接在importantInformation.html页面点击时只需关闭对话框即可。该链接的ID为“closeTC”:

$("#closeTC").click(function(event){ 
    $dialog.close(); 
}); 

但是会发生什么情况是实际包含的页面在iFrame内部加载。看来,event.preventDefault();正在被忽略。

任何人都可以告诉我哪里出错了吗?对话框上的默认关闭“x”工作得很好,但我不知道如何找出它的工作原理。

回答

0

你需要调用从父jQuery的.dialog("close")方法:

参考见本answer

守则

$(parent.document).find('#TCsWindow').dialog("close"); 
+0

这是伟大的Arnav - 非常感谢你的帮助! –

0

该对话框位于父窗口中,而不是在iframe中,以便从iframe访问父窗口中的元素,您可以使用parent

$(parent.document).find('#TCsWindow').dialog("close");