简单的jQueryUI对话框导致1.9的错误

时间:2013-03-03 16:52:19

标签: jquery jquery-ui jquery-ui-dialog

我以前使用过以下脚本,效果很好。我现在收到以下错误:

Error: cannot call methods on dialog prior to initialization; attempted to call method 'close'.
jquery-latest.js (line 507)

如果升级到jQueryUI 1.10.1,则不再导致错误。通常,我会放手,升级,而不用担心它。这个问题是它过去有效,为什么现在不让我发疯?我必须做一些与之前不同的愚蠢的事情,但我看不到它。

<!doctype html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title>jQuery UI Dialog</title>
        <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script> 
        <link type="text/css" href="http://code.jquery.com/ui/1.9.0/themes/base/jquery-ui.css" rel="stylesheet" />
        <script src="http://code.jquery.com/ui/1.9.0/jquery-ui.js" type="text/javascript"></script> 
        <script>
            $(function() {
                $("#open").click(function(){$("#dialog").dialog('open');return false;});
                $( "#dialog" ).dialog({
                    modal: true,
                    autoOpen    : false,
                    buttons: {
                        Ok: function() {
                            $( this ).dialog( "close" );
                        }
                    }
                });
            });
        </script>
    </head>
    <body>
        <button id="open">Click</button>
        <div id="dialog" title="What ever"></div>
    </body>
</html>

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,我通过在对话框声明之外定义我的按钮数组来解决。

var buttonArray = {};
buttonArray["Ok"]=function() { $( this ).dialog( "close" );}

您的选择将成为:

     modal: true,
     autoOpen: false,
     buttons: buttonArray