@EvgeniiR
https://github.com/EvgeniiR

Почему внутри одного и того же скрипта функция становится undefined?

a = $("div");
alert(a.chosen);
$(document).ready(function () {
    a = $("div");
    alert(a.chosen);
    $('.chosen').chosen({search_contains:true});
    ...
});

Вывод первого алерта
function(options) {
                if (!AbstractChosen.browser_is_supported()) {
                    return this;
                }
                return this.each(function(input_field) {
                    var $this, chosen;
                    $this = $(this);
                    chosen = $this.data('chosen');
                    if (options === 'destroy') {
                        if (chosen instanceof Chosen) {
                            chosen.destroy();
                        }
                        return;
                    }
                    if (!(chosen instanceof Chosen)) {
                        $this.data('chosen', new Chosen(this, options));
                    }
                });
            }

Вывод второго алерта - undefined. Как так получается?

Изначальная проблема - эта функция объявляется в подключаемом скрипте, но на странице не получается её вызвать, в т.ч. из консоли разработчика.
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
Vlad_IT
@Vlad_IT Куратор тега JavaScript
Front-end разработчик
Вероятно, у вас подключено 2 версии jQuery (не то, чтобы версии, 2 раза просто загружаете jQuery). В первый раз уже загружена одна версия с плагином chosen, и алерт выводит то, что нужно. А в момент выполнения $(document).ready уже загружена вторая версия jQuery, которая затерла первую версию, и все ее плагины.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Arik
$(document).ready(function () {
- если не ошибаюсь гарантирует что весь документ загружен и jQuery доступен, а вы работаете вне этой функции с jQuery?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы