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.
Ответы
Ответ 1
ОК, это связано с тем, что я поместил диалог DIV в файл PHP, который еще не был загружен в то время, когда был загружен JS. Поэтому я переместил DIV для диалогового окна на более высокую страницу, и кнопка теперь работает на любой странице в моем приложении. Надеюсь, это поможет кому-то другому.
Ответ 2
Я получал ту же ошибку. Это исправлено для меня, взято из http://forum.jquery.com/topic/jquery-ui-model-dialog-close
$(".ui-dialog-content").dialog().dialog("close");
Ответ 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 ($) {