Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Jquery плагин $.autocomplete работает некорректно (https://javascript.ru/forum/jquery/53140-jquery-plagin-%24-autocomplete-rabotaet-nekorrektno.html)

chakopss 22.01.2015 14:33

Jquery плагин $.autocomplete работает некорректно
 
Добрый день Всем! Ситуация такая!

Функция electricityProviderInfo, вызывается по событиям keyup, focus на элементе input#electricity_provider.

Затем генерится массив с данными, создаваемый в php скрипте , который уже использует jQuery плагин autocomplete.

Проблема в том, что иногда плагин не сразу срабатывает, т.е само событие Open ( у плагина aucomplete )

Подскажите пожалуйста в чем может проблема. Спасибо!

Пример плагина

function electricityProviderInfo( params ) {
    
    createAutocomplete = false;
        
    var providers = [];
    $ = jQuery;

    var value = $( params.element ).val();
    var __url = 'https://sitename.com/electricityProviderInfo.php?elecricity_provider='+encodeURIComponent( $( params.element ).val() ) +'&c=?';
    
    
    $.ajax({
        url: __url,
        cache : true,
        dataType: 'jsonp',
        success : function( data ) {

            $.each(data, function(index, info) {
             
                   providers.push( info.company_name );
            });  
            

            if( data.elecricity_provider != "" ) {

                $('#electricity_provider').autocomplete({
                    source: providers,
                    select : function(event, ui) {
                        createAutocomplete = true;
                    }  
                });                 
            }

                      
        }
    });


}

krasovsky 23.01.2015 10:06

Вроде все правильно но я не вижу тут обработки колбека Open. Кроме того, этот ивент вызывается не когда меню открыто или обновлено, как и сказано в доке.
Ты по клику на инпут инициализируешь автокомплит? Может, ты его инициализируешь каждый раз при клике? Сделай на jsfiddle пример, там можно подключить external libraries, тогда будет видно

chakopss 05.02.2015 17:01

Спасибо большое, за подсказку! Уже решил!


Часовой пояс GMT +3, время: 00:48.