2012-08-16 89 views
0

创建重复的对话框在我的尾页如何避免在jQuery的

Link 1 , Link 2 , Link 3 

这些链接,点击后打开一个对话框,数据内容和页脚文件。 因此,对话框将看起来像:

 Data 
     Link 1 , Link 2 , Link 3 

当我点击来源对话框中的一个环节它打开另一个对话框,所以这个逻辑是一个无限循环去英寸

有没有办法避免这个对话框的重复?

开功能:

$(function() { 

    $('#dialog').dialog('close'); 
    // Trying it here but not sure if this is the right place to do 
    // I want to close all dialog boxes before opening one 

    $("#dialog").dialog({ 
     modal:true, 
     height:600, 
     width:600, 
     my: "center", 
     at: "center", 
     of:window, 
     resizable:false, 
     closeOnEscape:false, 
     open:function (event, ui) { 
       $('#dialog').load('/contact.jsp'); 
     } 
    }); 

    $("#dialog").dialog("option", "title", url); 
}); 

还在想,如果我在开始用正确的地方放置.close?

+2

在打开一个新的之前关闭它们? – Linuxios 2012-08-16 19:31:18

+0

$('#dialog')。dialog('close');是我的尝试,但我的浏览器FF,Safari浏览器,IF,铬没有检测到它 – KAPILP 2012-08-17 13:29:38

回答

0

加载对话框时不要包含页脚文件。

+0

以及它的一部分的要求,所以我必须..否则,它将不会是一个问题 – KAPILP 2012-08-16 19:33:26

+0

是否有更多的脚注,而不仅仅是链接?如果是这样,请将链接的可见性设置为可选。在渲染主页时,让页脚显示链接。在渲染对话框时,隐藏链接。对于模糊不清,但你没有真正包含关于你的实际代码的很多信息。 – 2012-08-16 19:37:03

+0

嗯,我同意我认为它比代码或使用正确的APIS更合乎逻辑的问题。因此将其保留在非常抽象的层次上。我不得不再次包含页脚的原因是,当我显示对话框时,它覆盖了当前页脚的内容。 – KAPILP 2012-08-16 19:42:27

1

假设你有一个动态创建这个东西的函数,也就是循环。 如果是这样,避免重复的解决方案是给对话框一个自己唯一的类名,并且在任何创建之前,使用jquery调用来删除具有该类名的任何元素。

这里有.remove()

+0

删除将它从DOM对象中删除,我认为关闭将会比删除更好的选项 – KAPILP 2012-08-17 13:30:24

+0

取决于。如果这是无用的代码,只是将应用程序关闭,关闭不会像删除意愿一样删除它。 (正如你所说的,删除会直接删除它。)如果代码实际上是有用的,而不仅仅是重复,那么接近假设就没问题。考虑到关闭不起作用,但是,我建议只是/尝试/删除,并让我们知道它是如何发生的。 :) – jos 2012-08-17 14:10:48

+0

- 或者尝试.pluginName('destroy')。另一件要检查的是你没有正确使用dialog('open')http://blog.nemikor.com/2009/04/08/basic-usage-of-the-jquery-ui-dialog/ – jos 2012-08-17 14:13:35

0

更多信息添加GET参数,通过你的链接像mypage.php?dialog=true

,并在你的页脚叫页,检查是否存在此参数显示的链接之前:

<?php if(!isset($_REQUEST['dialog'])) : ?> 
HTML code to display your link <a href="mypage.php?dialog=true">link</a> 
<?php endif; ?>