#jquery #jquery-ui #plugins #jquery-plugins
#jquery #jquery-пользовательский интерфейс #Плагины #jquery-плагины
Вопрос:
У меня есть html-страница, которая добавляет ссылку на библиотеку jquery. Затем у меня появляется диалоговое окно, которое снова загружает библиотеку jquery.
На данный момент у меня есть плагин jquery # 1, который вызывает другой плагин jquery # 2, и я получаю сообщение об ошибке типа jquery pluging 2 не может быть найден.
Если я удалю ссылку на первую библиотеку jquery, все, похоже, заработает. Почему добавление второй ссылки на jquery (для диалогового окна) вызвало бы эту проблему? Как я могу решить?
Мой плагин (во внешнем файле определен как)
(function ($) {
$.fn.finder = function (optionsIn) {
//do stuff
..
//2nd call to plugin this is where i get the error
$(this).watermark('watermark');
};
})(jQuery);
Плагин отлично работает на простой HTML-странице, однако, если я использую плагин в диалоговом окне, у него возникают проблемы с несколькими ссылками на библиотеку jquery.
Идеи?
Я использую плагин водяных знаков https://github.com/fabrikagency/fa-watermark при типичном использовании, подобном $('input').watermark('Enter your name.','my-custom-class');
Комментарии:
1. Покажите
watermark
определение. Кроме того, внутри функции `$.fn.func_name’this
находится объект jQuery. Поэтому не переносите это в другой объект jQuery.2. Да, использование $ (this), кажется, подходит, когда плагин не используется в диалоговом окне (помните, что при реализации dialog основные ссылки ссылаются на библиотеку jquery, и диалоговое окно также ссылается на нее) .. все работает нормально, если я удаляю одну из ссылок на jquery, с чего бы это?
3. Вы должны включить плагин водяных знаков, прежде чем включать свой собственный файл внешнего скрипта, содержащий
finder
.
Ответ №1:
Спасибо за ввод. Это заставило меня очень внимательно следить за порядком загрузки элементов. Похоже, проблема заключалась в том, что мой плагин загружался до jquery. Это также отвечает на вопрос, почему, если я вставлю $ (‘inputelement’).Подключаемый модуль («) внутри $(document).готово (функция () { }); затем все заработало нормально. Это сработало, потому что он не пытался подключить плагин до тех пор, пока все не было загружено.