Клуб API Карт

Как использовать плагины jQuery через YMaps.jQuery?

Пост в архиве.

Здравствуйте!

Подскажите, пожалуйста, как можно использовать внешний плагин jQuery?

Для примера, добавляю на страничку <script type="text/javascript" src="site.ru/js/someFun.js"></script>. В site.ru/js/someFun.js есть некоторая функция (function($) {$.fn.someFun=function(someData,settings){.....};})(jQuery);

Хочу использовать ее для автокомплита в input#suggestBox.

На страничке с картой добавляю:

YMaps.jQuery(function () {
    var testData= {};
    testData.sampleData= '[{"id":"11","text":"22"},{"id":"33","text":"44"}]';

    $('input#suggestBox').someFun(testData.sampleData, {settings});       

});

а также <input type="text" id="suggestBox" />

При загрузке страницы через Firebug вижу ошибку jQuery is not defined, соответственно, плагин не работает.

Пожалуйста, подскажите как правильно использовать этот внешний плагин.

11 комментариев
В site.ru/js/someFun.js есть некоторая функция (function($) {$.fn.someFun=function(someData,settings){.....};})(jQuery);

Тут-то ошибка и есть: (function($) {$.fn.someFun=function(someData,settings){.....};})(YMaps.jQuery);
Удалённый пользователь
28 января 2016, 06:54
(function($) {$.fn.someFun=function(someData,settings){.....};})(YMaps.jQuery);

Ошибка аналогична.
Только теперь YMaps is not defined
Мм, точно.

Проблема, собственно, в том, что когда вы подключаете someFun.js, и он исполняется, Я.Карты еще не загружены.
Удалённый пользователь
28 января 2016, 06:54
Да, это может быть...
Не подскажете, как отложить загрузку скрипта до загрузки карты?
Подключайте его после подключения карты.

Можно так же попробовать сделать через асинхронную загрузку карты (передавая в YMaps.load функцию, которая содержит YMaps.jQuery.getScript('/js/someFun.js')). Правда, это может обернуться довольно неприятным геморроем — асинхронные API могут быть довольно неудобны для начинающих.
Удалённый пользователь
28 января 2016, 06:54
Да, благодарю!
Эта ошибка исчезла. Теперь другая есть.
Подключил эту функцию после карты и скрипта
YMaps.jQuery(function () {
       
            var testData= {};
            testData.sampleData= '[{"id":"11","text":"22"}

,{"id":"33","text":"44"}]';

            $('input#suggestBox').someFun(testData.sampleData, {settings});
       
       
        })


Получаю ошибку $("input#suggestBox") is null.
Как Вы полагаете, проблема в som

eFun или снова что-то не успевает выполниться?

Удалённый пользователь
28 января 2016, 06:54
Всё, разобрался.
Вот так нужно:

YMaps.jQuery(function () {
       
            var testData= {};
            testData.sampleData= '[{"id":"11","text":"22"}

,{"id":"33","text":"44"}]';

            YMaps.jQuery('input#suggestBox').someFun(testData.sampleData, {settings});
       
       
        })


Еще раз благодарю за помощь.
Не за что:)
Как я понял из jQuery в YMaps убрали некоторые вещи, отсюдова:
Какая версия jQuery,
И какие изменения в нем были внесены.
то что надо, спасибо!