jQuery UI对话框关闭后不会重新打开

时间:2013-02-13 05:29:11

标签: jquery jquery-ui

这是我正在使用的代码:

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 */

第一次打开对话框就好了,但如果我通过单击“关闭”按钮关闭对话框或点击“转义”,则第二次不会打开。这是我在控制台中收到的错误消息:

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

我最初没有使用autoOpen:false,我认为这是问题所在,但是当我这样切换时,它仍然会出现同样的错误。

有什么想法吗?

更新:

我一直在挖掘更多,它似乎是由$('。viewer')引起的.load('filename');线。出于某种原因,只允许观众打开一次。

2 个答案:

答案 0 :(得分: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 */

答案 1 :(得分:1)

我发现这是因为我在我加载到Viewer类的页面上重新包含jQuery,所以我想你不能重新包含jQuery库。