jQuery: странная ошибка: $ («#dialog»).jqm не является функцией

#jquery #jquery-plugins

#jquery #jquery-плагины

Вопрос:

Я получаю действительно странную ошибку, которую я не смог локализовать / узнать, откуда она исходит. Firebug сообщает:

Ошибка: $ («#dialog»).jqm не является источником функции:

http://www.daniello.nstrefa.pl/scripts/jquery.init.js

Строка: 3

Файл jquery.modal.js загружается, и даже если я помещу его содержимое внутрь jquery.init.js Я получаю ту же ошибку. Может ли эксперт взглянуть на это и написать, что не так?

Сайт: http://www.daniello.nstrefa.pl /

Комментарии:

1. Да, это будет добавлено строкой раньше. Также, если я добавлю console.log($("#dialog")); , я получу элемент.

Ответ №1:

Вы загружаете jQuery дважды (ну, на самом деле, три раза). После jQuery.init.js добавления дополнительных функций плагина к jQuery объекту jQuery загружается снова, заменяя старый объект новым без плагина.

Ответ №2:

Ваша проблема связана не с плагином, а с предыдущей ошибкой в checkForm() функции

 //...
if (siw amp;amp; siw.selectingSomething)
//...
  

Ответ №3:

Хм, у вас много чего происходит на этой странице. Похоже, что происходит то, что элемент #dialog создается после вызова $ («#dialog»).jqm. Я думаю, вам следует подумать о проведении некоторого рефакторинга. Прежде всего, убедитесь, что у вас есть только один jquery.js ссылка. Я бы также убедился, что она находится над другими вашими библиотеками jquery (поищите рекомендации Стива Соудерса — погуглите его) и внизу вашей страницы (перед / body). Функция, которая создает #dialog (где бы это ни было), должна делать это где-то в document.ready.