создаю компонент, и нужно мне в Joomla 3.3 и выше( > ) с помощью jQuery загружать данные в селекты, данные грузятся, но <div> обертка не видит, пробовал записать в неё напрямую, но.... при открытии позиции перезаписываются автоматически, Так вот, как в коде jQuery вызвать метод сканирования селектов???
Это я уже читал(иначе бы не создавал темы), дело в том, что это пункт меню, и там chosen подключен по автомату, списки у меня просто динамические, и при загрузке страницы пусты... Я же в первом посту написал, что chosen не видит динамичесски подгруженных списков
Ааа... Тогда лучше по официальной документации http://harvesthq.github.io/chosen/ вызывать после загрузки селектов Код (javascript): $(".select").chosen(); или использовать Change / Update Events
А $(".select") - это обращение на класс? если можно обратиться по id то к какому элементу присваивать .chosen(); к измененному или ко всей форме?
Это селектор тега SELECT Не понял. Если у SELECT есть ID, то по нему и обращаешься, если только его надо оформить.
Спойлер: Код HTML Код (html): <div class="controls"> <select id="jform_request_rid" name="jform[request][rid]" task="roundsoptions" required="false" depends="pid" class="inputbox depend chzn-done" current="13" style="display: none;"> <option value="0">- Выбрать -</option> <option value="13">1 тур</option> // это подгружается при событии onChange на jform_request_pid <option value="14">2 тур</option> // это подгружается при событии onChange на jform_request_pid <option value="15">3 тур</option> // это подгружается при событии onChange на jform_request_pid </select> <div class="chzn-container chzn-container-single chzn-container-single-nosearch" style="width: 220px;" title="" id="jform_request_rid_chzn"> <a class="chzn-single" tabindex="-1"> <span>- Выбрать -</span><div><b></b></div></a> <div class="chzn-drop"> <div class="chzn-search"><input type="text" autocomplete="off" readonly=""></div> <ul class="chzn-results"></ul> </div> </div> </div> пробовал: //return infix.match("request") ? "jform_request_" : "jform_params_"; у меня id = получается jform_request_rid $('#'+id).trigger("chosen:updated"); // тихо $('#'+id+'_chzn').chosen(); // вешается новая обертка, старая скрывается, но новая так же пуста $('#'+id).chosen(); // тихо(ноль эмоций)
Что за HTML-код? Странно выглядит для исходного кода... Вообще, с чем проблема? Опиши пошагово (лучше в картинках ), как всё должно работать, что такое "обертка" и "метод сканирования селектов"... Насколько я понимаю, после обновления данных в SELECT надо переинициализировать chosen. для этого есть Код (javascript): $(selector).trigger("chosen:updated"); или $(selector).val('').trigger("chosen:updated"); или для старой версии Код (javascript): $(selector).val('').trigger('liszt:updated'); но вызывать оно должно ПОСЛЕ загрузки данных в SELECT
Специально заглянул в файл media/jui/js/chosen.jquery.min.js надо использовать Код (javascript): $(selector).trigger("liszt:updated");
Благодарю, я что-то с прототипами пока не разобрался... А хтмл код из админ панели, пункт меню создать --- добавлено: 23.12.2014, первое сообщение размещено: 23.12.2014 --- Код (javascript): $('#'+id).trigger("liszt:updated");//где id jform_request_(интересующая меня переменная) отлично, благодарю Вас, и такой вопрос, представим, переопределили шаблон меню в сайт/templates/html/com_menus и принудительно отключили chosen насколько правильно будет проверка будет ли вообще вызывать ошибку $('#'+id).trigger("liszt:updated"); если фреймворк не объявлен? Код (javascript): if($('#'+id+'_chzn').length){ $('#'+id).trigger("liszt:updated"); }
Так ведь несложно проверить - в консоли сразу всё видно. Проверка вроде нормальная. Без понятия. Думаю ничего страшного.