Когда я перетаскиваю элемент и вытаскиваю его на область сбрасываемо, элемент будет перестраиваться таким образом, чтобы его нижний левый угол находился под курсором мыши. Обратите внимание, что я перетаскиваю свой элемент из дочернего элемента одного сестра в правнук другого элемента сестры, в конечном счете между двумя ОЧЕНЬ разными вложенными представлениями в Backbone.Удаление элемента в область Draggable вызывает перетаскивание элемента для удаления или перемещения
Это правильно, прежде чем я уронить мою деталь: ............. Это то, что происходит, когда я бросаю мою деталь:
...
Это код для моего перетаскиваемого пункта, в позвоночнике Просмотр визуализируют функцию:
// JQ Draggable
$('.stamp').draggable({
revert: 'invalid',
helper: 'clone',
drag: function(event, ui) {
//Not using the drag function, should I?
}
});
Это код для моего сбрасываемого пункта:
// JQUI Droppable
$(this.el).droppable({
accept: '.stamp',
drop: function(event, ui) {
var newDiv = $(ui.helper).clone(false)
.removeClass('ui-draggable-dragging')
.css({position:'absolute', left:event.offsetX, top:event.offsetY});
$(this).append(newDiv);
}
})
Моя цель состоит в том, что когда элемент упал, я не хочу, чтобы предмет перемещался. This jsFiddle делает именно то, что я хочу, чтобы мой код делал, о чем свидетельствует пример API.
Однако, когда я применил код выше (jsFiddle) к моему проекту, объект перетаскивания исчезает при удалении.
Это правильно, прежде чем я уронить мою деталь: ............. Это то, что происходит, когда я бросаю мою деталь:
..
Я только изменил код для моего сбрасываемого пункта:
// JQ Droppable
$(this.el).droppable({
accept: '.stamp',
drop: function(event, ui) {
var newDiv = $(ui.helper).clone(false)
.removeClass('ui-draggable-dragging')
.css({position:'absolute', left: ui.offsetX, top: ui.offsetY});
$(this).append(newDiv);
}
})
в конечном счете, только изменяя CSS от event.offset*
к ui.offset*
. Также обратите внимание, что в области divppable div есть SVG, который занимает большую часть div вместе с двумя другими div.
Отслеживание «отсутствующего элемента с использованием JQuery после освобождения с помощью stop:
на перетаскиваемом объекте, похоже, идет в крайнее левое положение.
Так возвращаясь к сбрасываемой коде, если мы избавимся от всего и просто включить droppable({...})
функции с двумя атрибутами, один за что accept
, и один для функции drop
, но в функции drop
, мы append
в ничего, экземпляр или нет, мы получаем ожидаемые результаты (хотя и с ошибкой консоли):
$('#droppable-area').droppable({
accept: '.stamp',
drop: function (event, ui) {
$('#droppable-area').append(n);
}
})
, но если мы не будем включать append
или если мы передаем без каких-либо параметров в append
, это исчезает " , как видно из этого fiddle.
Что происходит?
ТАКЖЕ, при исследовании перетаскиваемую элемента, когда вы берете его в левом верхнем углу, то console.log(event.offsetX, event.offsetY);
напечатает что-то ~ 5 5
. Если вы возьмете его в левом нижнем углу, это будет размер кнопки div, поэтому в нашем случае ~ 12 25
.Когда вы перетаскиваете элемент INTO в раскрывающийся div, но НЕ отпускаете, то изменяются eventX
и eventY
, чтобы быть позицией курсора в div. Может быть, я могу взять начальное значение eventX
и eventY
, как только они начнут перетаскивать и использовать это для настройки точного position:absolute
?
длинный вопрос, хочет название было более сложным –