我有一个包含多个模态jQuery UI对话框的页面,我试图在一个对话框(faq)上建立一个链接,该对话框将关闭该对话框并打开另一个对话框(保修)。以下是相关代码:
var $faqIframe = $('<iframe />', {
name: 'myFrame',
id: 'myFrame',
src: "modal_faq.html",
width:"100%",
height:"100%",
align:"left",
scrolling:"auto",
frameborder:"0"
});
var $warrantiesIframe = $('<iframe />', {
name: 'myFrame1',
id: 'myFrame1',
src: "modal_warranties.html",
width:"100%",
height:"100%",
align:"left",
scrolling:"auto",
frameborder:"0"
});
然后,打开faq iFrame
$(function(){
$('#faqDialog').dialog({
autoOpen: false,
width: 780,
height: 460,
modal: true
});
$('#faqDialog').append($faqIframe.clone());
// Dialog Link
$('#faq_link, #faq_link1').click(function(){
$('#faqDialog').dialog('open');
return false;
});
这很好用,按预期打开对话框。我也有类似的保修对话框代码。这是当前无法正常工作的代码。 #warranty_link2是faq对话框上的一个链接,当单击时,我想触发关闭faq对话框。
$('#warranty_link2').on("click", function(event){
$('#faqDialog').dialog('close');
});
}
我试过了
$('#faqDialog').dialog('close');
$('#faqDialog').dialog('hide');
$('#faqDialog').dialog('destroy');
我也试过'live'而不是'on',并且没有这两个中的任何一个 还尝试使用var $ faqIframe引用它,如
$faqIframe.dialog('close')
没有结果。
我知道click事件正在触发,因为我放入了一个有效的console.log。
我做错了什么以及如何关闭此对话框?
在http://www.solarkit2go.com查看实际操作 - 点击常见问题解答链接
答案 0 :(得分:2)
您必须在触发对话框后绑定onclick事件。见下文
$(function(){
$('#faqDialog').dialog({
autoOpen: false,
width: 780,
height: 460,
modal: true
});
$('#faqDialog').append($faqIframe.clone());
// Dialog Link
$('#faq_link, #faq_link1').click(function(){
$('#faqDialog').dialog('open');
$('#warranty_link2').click(function(event){
$('#faqDialog').dialog('close');
});
return false;
});