У меня есть приложение с некоторыми возможностями перетаскивания и перетаскивания, и я хочу сделать для одного типа перетаскивания (с данным классом) это перетаскивание можно отбросить только для одного типа перетаскивания.
Проблема в том,что это зависит от класса, в начале можно перетаскивать перетаскиваемый элемент в моей сетке повсюду:
$('.grid-drop').droppable({
accept: '.block',
hoverClass: 'hovered',
drop: handlePublishBlock
});
Итак, когда я начинаю перетаскивать свой элемент, я изменяю принятие своей сетки следующим образом:
$('.grid-drop').droppable({
accept: '.unknown-class',
hoverClass: 'hovered',
drop: handlePublishBlock
});
Но, похоже, это не работает, я все еще могу перетащить свой элемент на сетку.
Что я хочу сделать, так это то, что элемент с этим классом можно перетаскивать только на одну каплю, а после этого его нельзя перетаскивать в другой раз, поэтому вот мой фактический код:
$(".draggable-one")
.mousedown(function() {
$('.grid-drop').droppable({
accept: '.unknown-class',
hoverClass: 'hovered',
drop: handlePublishBlock
});
console.log("mousedown");
isDragging = false;
})
.mousemove(function() {
console.log("mousemove");
isDragging = true;
})
.mouseup(function() {
console.log("mouseup");
var wasDragging = isDragging;
isDragging = false;
if (wasDragging) {
$('.grid-drop').droppable({
accept: '.block',
hoverClass: 'hovered',
drop: handlePublishBlock
});
$(this).draggable('disable');
$(this).removeClass('block-draggable');
}
});
Когда я начинаю перетаскивать, я отключаю перетаскивание в моей сетке (но, кажется, не работает), и когда я опускаю в другое поле, кроме сетки (есть только одно другое поле), элемент не может быть перетащен в другой раз.Это работает, но отключение и повторное включение сетки не работает.
Кто-нибудь может мне помочь?Спасибо.