jQuery Multisortable с CustomScrollBar

0

Я использую mulisortable jquery plugin (github.com/shvetsgroup/jquery.multisortable) вместе с плагином mcustomscrollbar (manos.malihu.gr/jquery-custom-content-scroller), и у меня возникают проблемы с отображением перетаскиваемых элементов "overtop" контейнеров таможни.

В качестве примера у меня есть 4 отдельных контейнера, в которых используется пользовательская полоса прокрутки, и внутри каждого из этих контейнеров у меня есть разные списки, которые связаны с многозадачным плагином. Я могу перетащить выбранные элементы из списка в один контейнер в список в другом контейнере, однако, поскольку пользовательская полоса прокрутки добавляет overflow:hidden в своем контейнере, перетаскиваемые элементы идут "за" списками/контейнерами.

Мой вопрос: как заставить перетаскиваемые элементы появляться перед контейнерами

Вещи, которые я пробовал:

  • Я удалил overflow:hidden свойства из полосы прокрутки, которая делает то, что я хочу, но затем при прокрутке прокручиваемое содержимое появляется за пределами контейнера, что плохо.
  • Я попытался использовать helper:"clone" параметрах многозадачности, но это похоже только на клонирование одного элемента (вместо нескольких), и мой исходный список css делает неожиданные вещи.
  • Я также попытался установить z-index на те элементы, которые были выбраны, однако это также не помогает.

Вот мой jsfiddle: http://jsfiddle.net/ML49V/12/ Если кто-то встретил это раньше и имеет какие-либо предложения, я был бы признателен.

благодаря

  • 1
    создайте jsfiddle , где вы можете ссылаться на внешние Js-библиотеки и иметь живой пример вашей проблемы.
  • 0
    Я отредактировал свой пост, включив в него jsfiddle
Показать ещё 4 комментария
Теги:
jquery-plugins
jquery-multisortable

1 ответ

0
Лучший ответ

После некоторых поисков я нашел ответ. Если вы добавите строки ниже к параметрам mulitsortable, они будут работать по назначению.

Рабочий jsfiddle находится здесь: http://jsfiddle.net/ML49V/13/

stop: function (e, ui) {
    var elements = ui.item.data('multidrag');
    ui.item.after(elements).remove();
},
helper: function (e, item) {
    if (!item.hasClass("selected")) {
        item.addClass("selected").siblings().removeClass("selected");
    }
    var elements = item.parent().children(".selected").clone();
    item.data('multidrag', elements).siblings(".selected").remove();
    var helper = $('<li/>').css('list-style', 'none');
    helper.height('auto');
    return helper.append(elements);
},

Ещё вопросы

Сообщество Overcoder
Наверх
Меню