Mesuti
@Mesuti

При стилизации 2х select в каждом выводятся сразу два первых option?

Привет!
Есть стилизованные select
Но если делать сразу 2, то в обоих выводится по два первых option.
5bd6f3ca35668069510322.png
Как сделать один?
  • Вопрос задан
  • 55 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Давайте не будем копипастить, а сделаем нормальный плагин:

$.fn.customSelect = function() {
  return this.each(function() {
    const $this = $(this).hide();
    const $wrapper = $this.wrap('<div class="select_wrapper"></div>').parent();

    $wrapper.append(`
      <span>${$this.find(':selected').text()}</span>
      <ul class="select_inner">${$this.children().get().map(n => `
        <li data-value="${n.value}">${n.innerText}</li>`).join('')}
      </ul>
    `);
    $wrapper.on('click', 'li', function() {
      $wrapper.children('span').text(this.innerText);
      $this.val(this.dataset.value).trigger('change');
    });
    $wrapper.on('click', function() {
      $('ul', this).slideToggle('fast');
    });
  });
};


$('#materialColor, #kantcolor').customSelect().change(function() {
  console.log(`#${this.id}: "${this.value}"`);
});
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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