Подтвердить что ты не робот

JQueryUI - неперехваченное исключение: невозможно вызвать методы

Я очень новичок в jQuery и пытаюсь запустить довольно простое диалоговое окно jQueryUI в моем приложении PHP. В консоли 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 + "'";
        }
...

Любые идеи? Я ценю любую помощь в отношении того, что это сообщение об ошибке и как его решить.

UPDATE: Я пробовал комментировать параметры show/hide и не влиял на мою проблему. Ниже приведен 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.

4b9b3361

Ответ 1

ОК, это связано с тем, что я поместил диалог DIV в файл PHP, который еще не был загружен в то время, когда был загружен JS. Поэтому я переместил DIV для диалогового окна на более высокую страницу, и кнопка теперь работает на любой странице в моем приложении. Надеюсь, это поможет кому-то другому.

Ответ 3

В моем случае я использую: jQuery UI - v1.9.2, и у меня есть только:

$this.sortable("destroy");

и я получаю:

Неиспользуемая ошибка: невозможно вызвать методы сортировки до инициализации; попытался вызвать метод "destroy"

И я исправил добавление проверки:

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

Ответ 4

У меня была такая же ошибка, и проблема была в порядке кода! вы должны, но ваш javascript после html-кода:).

Ответ 5

В моем случае был конфликт JS с Mootools (классический Joomla, правильно?). Поэтому я пошел в main.js и изменил эту строку:

$(function () {

к этому:

jQuery(function ($) {