Вопрос formbehavior.chosen

Тема в разделе "Создание расширений для Joomla", создана пользователем Hishchnik, 23.12.2014.

  1. Hishchnik
    Offline

    Hishchnik Недавно здесь

    Регистрация:
    23.12.2014
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    создаю компонент, и нужно мне в Joomla 3.3 и выше( > ) с помощью jQuery загружать данные в селекты,
    данные грузятся, но <div> обертка не видит, пробовал записать в неё напрямую, но....
    при открытии позиции перезаписываются автоматически,
    Так вот, как в коде jQuery вызвать метод сканирования селектов???

     
  2.  
  3. Лучший ответ:
    Сообщение #10 от 23.12.2014, автор OlegM
  4. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
  5. Hishchnik
    Offline

    Hishchnik Недавно здесь

    Регистрация:
    23.12.2014
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    Это я уже читал(иначе бы не создавал темы), дело в том, что это пункт меню, и там chosen подключен по автомату, списки у меня просто динамические, и при загрузке страницы пусты... Я же в первом посту написал, что chosen не видит динамичесски подгруженных списков
     
    Последнее редактирование: 23.12.2014
  6. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Ааа... :)
    Тогда лучше по официальной документации http://harvesthq.github.io/chosen/ вызывать после загрузки селектов
    Код (javascript):
    1. $(".select").chosen();

    или использовать Change / Update Events
     
  7. Hishchnik
    Offline

    Hishchnik Недавно здесь

    Регистрация:
    23.12.2014
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    А $(".select") - это обращение на класс? если можно обратиться по id то к какому элементу присваивать .chosen();
    к измененному или ко всей форме?
     
  8. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Это селектор тега SELECT

    Не понял. Если у SELECT есть ID, то по нему и обращаешься, если только его надо оформить.
     
  9. Hishchnik
    Offline

    Hishchnik Недавно здесь

    Регистрация:
    23.12.2014
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    Код (html):
    1. <div class="controls">
    2. <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;">
    3. <option value="0">- Выбрать -</option>
    4. <option value="13">1 тур</option> // это подгружается при событии onChange на jform_request_pid
    5. <option value="14">2 тур</option> // это подгружается при событии onChange на jform_request_pid
    6. <option value="15">3 тур</option> // это подгружается при событии onChange на jform_request_pid
    7. </select>
    8. <div class="chzn-container chzn-container-single chzn-container-single-nosearch" style="width: 220px;" title="" id="jform_request_rid_chzn">
    9. <a class="chzn-single" tabindex="-1">
    10. <span>- Выбрать -</span><div><b></b></div></a>
    11. <div class="chzn-drop">
    12. <div class="chzn-search"><input type="text" autocomplete="off" readonly=""></div>
    13. <ul class="chzn-results"></ul>
    14. </div>
    15. </div>
    16. </div>

    пробовал:
    //return infix.match("request") ? "jform_request_" : "jform_params_";
    у меня id = получается jform_request_rid
    $('#'+id).trigger("chosen:updated"); // тихо
    $('#'+id+'_chzn').chosen(); // вешается новая обертка, старая скрывается, но новая так же пуста
    $('#'+id).chosen(); // тихо(ноль эмоций)
     
  10. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Что за HTML-код? Странно выглядит для исходного кода...

    Вообще, с чем проблема? Опиши пошагово (лучше в картинках :) ), как всё должно работать, что такое "обертка" и "метод сканирования селектов"...
    Насколько я понимаю, после обновления данных в SELECT надо переинициализировать chosen.
    для этого есть
    Код (javascript):
    1. $(selector).trigger("chosen:updated");
    2. или
    3. $(selector).val('').trigger("chosen:updated");

    или для старой версии
    Код (javascript):
    1. $(selector).val('').trigger('liszt:updated');

    но вызывать оно должно ПОСЛЕ загрузки данных в SELECT
     
  11. Hishchnik
    Offline

    Hishchnik Недавно здесь

    Регистрация:
    23.12.2014
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    Ок. Завтра опробую, отпишусь...
     
  12. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Лучший ответ
    Специально заглянул в файл media/jui/js/chosen.jquery.min.js
    надо использовать
    1. Код (javascript):
      1. $(selector).trigger("liszt:updated");
     
    Hishchnik нравится это.
  13. Hishchnik
    Offline

    Hishchnik Недавно здесь

    Регистрация:
    23.12.2014
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    Благодарю, я что-то с прототипами пока не разобрался... А хтмл код из админ панели, пункт меню создать
    --- добавлено: 23.12.2014, первое сообщение размещено: 23.12.2014 ---
    Код (javascript):
    1. $('#'+id).trigger("liszt:updated");//где id jform_request_(интересующая меня переменная)

    отлично, благодарю Вас, :bravo:
    и такой вопрос, представим, переопределили шаблон меню в сайт/templates/html/com_menus и принудительно отключили chosen
    насколько правильно будет проверка
    будет ли вообще вызывать ошибку $('#'+id).trigger("liszt:updated"); если фреймворк не объявлен?
    Код (javascript):
    1. if($('#'+id+'_chzn').length){
    2. $('#'+id).trigger("liszt:updated");
    3. }
     
  14. OlegM
    Offline

    OlegM Russian Joomla! Team Команда форума

    Регистрация:
    12.04.2007
    Сообщения:
    4 356
    Симпатии:
    370
    Пол:
    Мужской
    Так ведь несложно проверить - в консоли сразу всё видно.
    Проверка вроде нормальная.
    Без понятия. Думаю ничего страшного.
     
    Последнее редактирование: 23.12.2014
  15. Hishchnik
    Offline

    Hishchnik Недавно здесь

    Регистрация:
    23.12.2014
    Сообщения:
    12
    Симпатии:
    0
    Пол:
    Мужской
    тогда благодарю за все, на этом вопрос исчерпан
     

Поделиться этой страницей

Загрузка...