0
이 jsFiddle에서 하나의 문제가 발생합니다. 설명해 드리겠습니다drappable 요소가 비어있는 경우에만 draggables를 허용하도록 설정합니다.
"N"이 포함 된 요소를 드래그하면 다른 <td>
이 잘 작동합니다. 그러나 그 이후에 요소를 드래그하려고하면 원래 위치가 작동하지 않습니다.
내 기대 : 어떤 요소가 다른 곳으로 옮겨지면 이전 위치는 다른 요소를 받아 들일 수 있어야합니다.
다음
코드입니다 :$(function() {
$(".dragDiv").draggable({
create: function() {
$(this).data('position', $(this).position())
},
revert: 'invalid',
stop: function() {
$(this).draggable('option', 'revert', 'invalid');
}
});
$('.dragDiv').droppable({
greedy: true,
tolerance: 'touch',
drop: function (event, ui) {
ui.draggable.draggable('option', 'revert', true);
}
});
$(".mainTable tr td").droppable({
drop: function (event, ui) {
console.log(JSON.stringify($(this).attr('id')));
console.log(JSON.stringify(ui.draggable.attr("id")));
snapToMiddle(ui.draggable, $(this));
},
accept: function() {
return $(this).find("*").length == 0;
}
});
});
function snapToMiddle(dragger, target) {
var topMove = target.position().top - dragger.data('position').top + (target.outerHeight(true) - dragger.outerHeight(true))/2;
var leftMove = target.position().left - dragger.data('position').left + (target.outerWidth(true) - dragger.outerWidth(true))/2;
dragger.animate({
top: topMove,
left: leftMove
}, {
duration: 100,
easing: 'easeOutBack'
});
}
감사 TON. 내가 원하는대로 솔루션을주었습니다 – Napster
" "을 자식 요소를 드래그 한 후 멀리 떨어 뜨릴 수있는 요소로 어떻게 설정할 수 있습니까? – Napster
@Napster 기본적으로'td' 안에'& nbsp'를 넣을 수 없습니까? 'xy' 문제 같은데. 어쩌면 그것은 CSS를 통해 해결할 수있는 무언가입니다 ..? –