#javascript #html #jquery #css #select2
Здравствуйте! Есть форма с селектами, где используется плагин select2. Столкнулся
со следующей проблемой: select2 просчитывает ширину селектов только при загрузке страницы
(возможно утверждение ошибочно, но у меня так), поэтому для селектора div.select2-container
задал стиль width: 100% !important.
Одну проблему решил, так появилась другая - поскольку div.select2-containerнаходится
в корне боди и имеет абсолютное позиционирование с отступом от левого края, его правый
край выбирает из боди и расширяет его. Поэтому мне пришла в голову мысль указывать
в select2 родителя для выпадающего списка. В документации плагина я такую возможность
не нашел, существует ли она вообще, и если да, то как это сделать?
По ссылке страница с проблемной формой, проблема наблюдается только в мобильной версии
в режиме разработчика - при раскрытии селектов шапка смещается вправо.
UPD: добавил стандартный селект, где видно что выпадающий список располагается в
корне body.
UPDD: нашел здесь вариант с использованием AttachContainer, попробовал, - выпадающий
список остается на прежнем месте. Внес изменения в код.
$(document).ready(function() {
$(".js-example-basic-single").select2({
minimumResultsForSearch: Infinity,
AttachContainer: $('.wrapper')
})
});
Ответы
Ответ 1
Для указания родительского элемента, для выпадающего списка нужно использовать свойство dropdownParent $(document).ready(function() { $(".js-example-basic-single").select2({ minimumResultsForSearch: Infinity, dropdownParent: $('.wrapper') }) });К вопросу в комментарии: так как сейчас выбираются все элементы с классом wrapper, может быть проблема если таких элементов несколько. Для решения, нужно выбирать элементы контейнеры относительно элемента селекта: $(document).ready(function() { $(".js-example-basic-single").each(function() { // бежим по всем селектам $(this).select2({ // ини циализируем каждый отдельно minimumResultsForSearch: Infinity, dropdownParent: $(this).closest('.wrapper') // выбираем конкретный элемент с классом, относительно текущего селекта }) }); }); .wrapper { margin-bottom: 10px; }
Комментариев нет:
Отправить комментарий