0

私が使用しているコードは次のとおりです。

jQuery(document).ready(function($) {
            $('.addNew').click(function(event) {
                event.preventDefault();
                openEditor(event);
            }); /* END ADD CLICK */

            $('.editLink').click(function(event) {
                event.preventDefault();
                openEditor(event);
            }); /* END EDIT CLICK */

            /* DEFINE THE EDITOR OPEN LATER */
            $('.viewer').dialog({
                fullscreen: true,
                show: "pulsate",
                width: $(window).width()-20,
                height: $(window).height(),
                autoOpen: false
            }); /* END OPEN EDITOR */

        }); /* END DOCUMENT READY */

        function openEditor(event) {
            jQuery(document).ready(function($) {
                $('.viewer').load(window.location.pathname + 'edit.php');
                var x =event.pageX - ( $(document).scrollLeft() - 100 );
                var y =event.pageY -$(document).scrollTop();
                $('.viewer').dialog('open');
            }); /* END DOCUMENT READY */
        } /* END OPENEDITOR FUNCTION */

ダイアログ ボックスは最初は正常に開きますが、[閉じる] ボタンをクリックするか、エスケープ キーを押してダイアログ ボックスを閉じると、2 回目は開きません。これは、コンソールに表示されるエラー メッセージです。

TypeError: $(...).dialog is not a function
[Break On This Error]   
$('.viewer').dialog('open');

私はもともと autoOpen: false を使用していませんでしたが、これが問題だと思っていましたが、この方法に切り替えても同じエラーが発生しました。

何か案は?

アップデート:

私はもう少し掘り下げてきましたが、 $('.viewer').load('filename'); が原因のようです。ライン。何らかの理由で、ビューアーを一度しか開くことができません。

4

2 に答える 2

1

openEditor を呼び出してダイアログを再起動しようとしていると思いますか? その場合は、ドキュメント準備完了への内部呼び出しを削除してみてください

function openEditor(event) {
    $('.viewer').load(window.location.pathname + 'edit.php');
    var x =event.pageX - ( $(document).scrollLeft() - 100 );
    var y =event.pageY -$(document).scrollTop();
    $('.viewer').dialog('open');
} /* END OPENEDITOR FUNCTION */
于 2013-02-13T05:38:43.763 に答える
1

Viewerクラスに読み込んでいたページにjQueryを再インクルードしていたためだとわかったので、jQueryライブラリを再インクルードすることはできないと思います。

于 2013-02-13T18:49:26.573 に答える