Клуб API Карт

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

klochcko.igor
5 ноября 2010, 18:51

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

Подскажите, пожалуйста, как можно использовать внешний плагин 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);
(function($) {$.fn.someFun=function(someData,settings){.....};})(YMaps.jQuery);

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

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

Можно так же попробовать сделать через асинхронную загрузку карты (передавая в YMaps.load функцию, которая содержит YMaps.jQuery.getScript('/js/someFun.js')). Правда, это может обернуться довольно неприятным геморроем — асинхронные API могут быть довольно неудобны для начинающих.
Да, благодарю!
Эта ошибка исчезла. Теперь другая есть.
Подключил эту функцию после карты и скрипта
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 или снова что-то не успевает выполниться?

Всё, разобрался.
Вот так нужно:

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,
И какие изменения в нем были внесены.
то что надо, спасибо!