Perfect Scrollbar + Bootstrap Выбор нескольких на странице не работает - PullRequest
0 голосов
/ 21 ноября 2018

Я сделал скрипку здесь .У меня есть проект bootstrap 4, использующий последние версии bootstrap-select , perfect-scrollbar , jquery.

На странице с 4 selectpickerэлементы, Perfect Scrollbar не работает в раскрывающихся списках, хотя ошибок нет.Я думаю, это связано с тем, как я инициализирую каждый экземпляр bootstrap select для каждого selectipicker на странице.

Мой код

$(document).ready(function() {

  // Init PerfectScrollbar + SelectPicker
  if ($('.dropdown-menu.inner').length != 0) {

    const spps = [];

    // For each instance of SelectPicker
    $('.dropdown-menu.inner').each(function(i) {

      // Get closest boostrap-select dropdown and add data-sp-id="i" so we know which is selected later
      $(this).attr('data-sppsid', i);

      // Using the SelectPicker array, initialize each picker scrollbar
      spps[i] = new PerfectScrollbar(this, {
        minScrollbarLength: 40
      });

    });

    // When a SelectPicker is opened
    $('body').on('shown.bs.dropdown', function(e) {

      e.stopImmediatePropagation();

      // Get the picker sppsid
      var i = $(e.target).find('.dropdown-menu.inner').data('sppsid');

      console.log(spps[i]);

      // Update the picker in the array
      spps[i].update();

    });

  }

  $('.ps-scrollbar-y').on('click', function(e) {
    e.stopPropagation();
  });

});

В console.log я могувидим, что элемент это PerfectScrollbar и он содержит:

PerfectScrollbar {element: ul.dropdown-menu.inner.show.ps, settings: {…}, containerWidth: 0, containerHeight: 0, contentWidth: 0, …}

В inspect я вижу классы ps__rail-x, добавленные к элементам, но на показанном .update() удаляет их.

Что я пропустил?Спасибо.

...