jQueryUI - 未捕获的异常:无法调用方法

时间:2010-09-30 04:51:36

标签: jquery-ui

我是jQuery的新手,并试图在我的PHP应用程序中运行一个非常简单的jQueryUI对话框。在firebug控制台中,我收到错误:

uncaught exception: cannot call methods on dialog prior to initialization; attempted to call method 'open'

这是我的代码:

$(function() {
    $( "#dialog" ).dialog({
        autoOpen: false,
        show: "blind",
        hide: "explode"
    });

    $( "#opener" ).live('click',function() {
        $( "#dialog" ).dialog( "open" );
        return false;
    });
});

我做了一些关于错误的谷歌搜索,并没有多少出现,除了jquery.ui.js生成错误:

if ( isMethodCall ) {
    this.each(function() {
        var instance = $.data( this, name );
        if ( !instance ) {
            throw "cannot call methods on " + name + " prior to initialization; " +
"attempted to call method '" + options + "'";
        }
...

有什么想法吗?我感谢您对此错误消息以及解决方法的帮助。

更新:我尝试评论显示/隐藏选项,这对我的问题没有任何影响。以下是HTML:

 <div class="demo">

    <div id="dialog" title="Basic dialog">
        <p>This is an animated dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
    </div>

    <button id="opener">Open Dialog</button>

</div><!-- End demo -->

此HTML包含在PHP文件中,该文件包含在另一个PHP文件中。

5 个答案:

答案 0 :(得分:22)

好吧,这与我将对话框DIV放在我加载JS时尚未加载的PHP文件这一事实有关。所以我将对话框的DIV移动到更高的页面,并且该按钮现在可以在我的应用程序的任何页面上运行。我希望这有助于其他人。

答案 1 :(得分:19)

我得到了同样的错误。这为我修好了,取自http://forum.jquery.com/topic/jquery-ui-model-dialog-close

$(".ui-dialog-content").dialog().dialog("close");

答案 2 :(得分:1)

就我而言,我使用:jQuery UI - v1.9.2,我只有:

$this.sortable("destroy");

我得到了:

未捕获错误:在初始化之前无法调用sortable上的方法;试图调用方法'destroy'

我在添加验证时修复了:

if ($this.data( "ui-sortable" )) 
{ $this.sortable("destroy"); }

答案 3 :(得分:1)

在我的情况下,与Mootools(经典的Joomla,对吧?)存在JS冲突。所以我去了main.js并更改了这一行:

$(function () {

到这一个:

jQuery(function ($) {

答案 4 :(得分:0)

我遇到了同样的错误,问题就是代码的顺序!! 你必须在html代码之后使用你的javascript:)。