4

我需要有一个弹出并显示一个基本表单的 jQuery UI 对话框,其中还包括一个外部 javascript 文件。

弹出模式,但没有加载任何脚本内容。不知道为什么。如果我直接进入模式正在加载的页面,它工作正常。

模态内容:

<link rel="stylesheet" href="http://www.bankrate.com/free-content/css/bankrate-fcc-calculators.css" type="text/css"/>

<input id="mrtgCal" type ="text" value="1,Arial,600" style="display:none" />

<script language="Javascript" src="http://js.bankrate.com/free-calculators/free-simple-mortgage-calculator-widget.js" type="text/javascript"></script>

<script type="text/javascript">mrtgCalcinit();</script>

模态调用:

$(function(){
        $('.modal-popup a, .email-button a').each(function() {
            var $link = $(this);
            var $dialog = $('<div></div>')
                .load($link.attr('href') + ' #region-content')
                .dialog({
                    autoOpen: false,
                    width: 600,
                    draggable: false,
                    resizable: false,
                    modal: true,
                    show: "fade",
                    hide: "fade",
                    closeText: 'X'

                });
            $link.click(function(){
                $dialog.dialog('open');
                return false;
            });

        });
    });
4

3 回答 3

1

如前所述,load不会加载脚本(阅读脚本执行部分)。但是,扩展对话框不是必需的,您可以使用.delegate().on()甚至是一个非常好用的插件,称为liveplugin来管理加载到对话框中的动态内容。

于 2012-06-25T18:14:49.103 回答
1

由于您调用的方式,脚本没有运行.load()。当您在 URL 后使用选择器时,库将不会运行嵌入式脚本。我的意思是' #region-content'在“href”值的末尾添加。

为什么?我不完全知道;我怀疑这与 jQuery 不知道嵌入的<script>主体是否依赖于<head>(或其他地方)中的脚本来工作这一事实有关。

于 2012-06-25T18:01:24.070 回答
0

最好的变体是编写您的自定义 jquery ui 小部件,使用您的功能扩展 jquery ui 对话框。

于 2012-06-25T18:04:11.103 回答