jQuery sortable (johnny) загрузчик 3 выпуск navbar
У меня проблема с начальной загрузкой, которую можно отсортировать в начальной загрузке 3.
$(".nav").sortable({
group: 'nav',
nested: false,
vertical: false,
exclude: '.divider-vertical',
onDragStart: function($item, container, _super) {
$item.find('.dropdown-menu').sortable('disable');
_super($item, container);
},
onDrop: function($item, container, _super) {
$item.find('.dropdown-menu').sortable('enable');
_super($item, container);
}
});
$(".dropdown-menu").sortable({
group: 'nav'
});
Вот скрипка, чтобы просто показать вам, что я имею в виду.
https://jsfiddle.net/xpv1t4gq/1/
Когда вы пытаетесь перетащить ссылку (это лучше всего видно на контакте), она не относится к курсору.
Я играл с этим последние несколько дней, но я не могу заставить его работать...
Кто-нибудь, кто может помочь мне с этим?
2 ответа
У меня была такая же проблема несколько часов назад, и я сделал это! Надеюсь, поможет.
Для начала вам нужно отредактировать 2 функции в jquery-sortable.js:
onDrag: function ($item, position, _super, event) {
x = $("#VerticalSort").val();
if (x == 0) {
$("#VerticalSort").val(position.left);
position.left = 0;
}
else {
position.left = position.left - x;
}
position.top = 0;
$item.css(position)
},
onDrop: function ($item, container, _super, event) {
$("#VerticalSort").val("0");
$item.removeClass(container.group.options.draggedClass).removeAttr("style")
$("body").removeClass(container.group.options.bodyClass)
},
Я использовал скрытый ввод в моем представлении только для тестирования решения, но идея состоит в том, чтобы сохранить значение первого щелчка для вычеркивания позже и сбросить до 0 в действии удаления.
<input id="VerticalSort" type="hidden" value="0" >
проблема в том, что в какой-то момент JS удваивают значения первого клика для x/y (в коде js с именами "left" и "top")
Надеюсь, это работает для вас.
С уважением!
У меня была та же проблема, и вам нужно включить параметр: delay
> 0
, Пример:
$(".nav").sortable({
group: 'nav',
nested: false,
vertical: false,
exclude: '.divider-vertical',
delay: 5,
onDragStart: function($item, container, _super) {
$item.find('.dropdown-menu').sortable('disable');
_super($item, container);
},
onDrop: function($item, container, _super) {
$item.find('.dropdown-menu').sortable('enable');
_super($item, container);
}
});