目前我有3個可拖曳項目設置了3個ID和類.word。jquery ui可拖拽/可拖拽,掉落時可交換拖拽
我已經成功地將它們放置到位,並且在拖出dropzone時也恢復到其初始位置。
我的主要目標是在拖放到dropzone時將可拖動的對象交換。例如:#word1在dropzone中,#word2被拖到dropzone,#word1應該返回到初始位置,#word2應該捕捉到dropzone等等。
我已經嘗試了各種各樣的東西,但無法正確理解邏輯。感謝社區。
編輯:
@bipen感到抱歉,代碼是迄今爲止如下:
HTML
<div id="line"></div>
<img src="resources/word1_correct.png" id="word1" class="word" />
<img src="resources/word2.png" id="word2" class="word" />
<img src="resources/word3.png" id="word3" class="word" />
JS
// JavaScript Document
$(document).ready(function() {
var p = $("#word1");
var offset = p.offset();
var p2 = $("#word2");
var offset2 = p2.offset();
var p3 = $("#word3");
var offset3 = p3.offset();
$(".word").draggable({
containment: "parent",
revert: 'invalid',
revertDuration: 0,
start: function(event, ui) {
// Log start dragged position to element data
}
// end .word draggable
});
$("#line").droppable({
accept: '.word',
tolerance: "touch",
drop: function(event, ui) {
$(ui.draggable).css('top',$(this).position().top);
$(ui.draggable).css('left',$(this).position().left);
$(ui.draggable).attr('class', 'dropped');
},
out: function(event, ui) {
$(this).droppable('option', 'accept', '.word');
$('#word1').draggable('destroy');
$('#word1').offset({ top: offset.top, left: offset.left});
$('#word1').draggable({
revert: 'invalid',
revertDuration: 0,
});
$('#word2').draggable('destroy');
$('#word2').offset({ top: offset2.top, left: offset2.left})
$('#word2').draggable({
revert: 'invalid',
revertDuration: 0,
});
$('#word3').draggable('destroy');
$('#word3').offset({ top: offset3.top, left: offset3.left})
$('#word3').draggable({
revert: 'invalid',
revertDuration: 0,
});
}
// end #line droppable
});
//end document ready
});
發佈您的代碼....讓我們不要」不得不從開始寫eveything ... – bipen