4

ポップアップして基本的なフォームを表示するjQueryUIダイアログボックスが必要です。このダイアログボックスには、外部の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()。URL の後にセレクターを使用すると、ライブラリは埋め込みスクリプトを実行しません。' #region-content'つまり、「href」値の末尾に を追加することを意味します。

なんで?完全にはわかりません。埋め込まれたボディが(または他<script>の場所の) スクリプトに依存して動作するかどうかを jQuery が認識していないという事実と関係があると思われます。<head>

于 2012-06-25T18:01:24.070 に答える
1

前に述べたように、loadはスクリプトをロードしません (スクリプトの実行セクションを読んでください)。ただし、ダイアログを拡張する必要はありません。ダイアログにロードされた動的コンテンツを管理するために、livepluginと呼ばれるプラグインを使用することも.delegate()できます。.on()

于 2012-06-25T18:14:49.103 に答える
0

最善の方法は、独自の jquery ui ウィジェットを記述して、jquery ui ダイアログを独自の機能で拡張することです。

于 2012-06-25T18:04:11.103 に答える