这是我第一次尝试使用拖放控件,但我在弄清楚它是如何工作的时遇到了问题。目前我有两个 DIV,我想将元素从一个 div 移动到另一个。使用draggable 允许我将DIVS 放置在我不想要的任何地方,我想限制元素可拖动的区域。
另一方面,我已经看过 jquery UI 示例,它们都与 droppable 元素交互,但我需要从draggable 元素获取 id 属性。这就是我到目前为止所做的,现在我不仅无法使 div 停留在它们应有的有限区域内,而且还无法获取可拖动元素的 Id 属性。
如有任何帮助,我们将不胜感激。谢谢。
$(function() {
$(".draggable").draggable();
$(".droppable").droppable({
drop: function(event, ui) {
var id, state;
state = $(this).attr("name");
id = $(this).closest(".droppable").attr("id");
alert("Element Id: " + id);
alert("Element New State: " + state);
}
});
});
这是一个更新的 fiddle ,显示了我现在遇到的可拖动效果的错误。 http://jsfiddle.net/LPWhc/3/
$(function() {
$(".draggable").draggable({ revert: 'invalid'});
$(".droppable").droppable({
accept: '.draggable',
drop: function(event, ui) {
$(this).append($(ui.helper));
$(".draggable").addClass("item");
$(".item").removeAttr("style");
$(".item").draggable({
revert: 'invalid'
});
}
});
});
最佳答案
HTML:
<div name="list-a" class="droppable">
<h3>List A</h3>
<div class="task-wrapper">
<div class="draggable" id="1" name="1">
<a href="#">Element 1</a>
</div>
<div class="draggable" id="2" name="3">
<a href="#">Element 2</a>
</div>
<div class="draggable" id="3" name="3">
<a href="#">Element 3</a>
</div>
</div>
</div>
<div name="list-b" class="droppable">
<h3>List B</h3>
<div class="task-wrapper">
<div class="draggable" id="5" name="5">
<a href="#">Element 5</a>
</div>
<div class="draggable" id="6" name="6">
<a href="#">Element 6</a>
</div>
</div>
</div>
jQuery:
$(document).ready(function(){
$( ".draggable" ).draggable({
start: function( event, ui ) {
var id = $(this).closest(".draggable").attr('id');
}
});
$( ".droppable" ).droppable({
accept: '.draggable',
drop: function(event, ui){
var id = ui.draggable.attr("id");
alert(id);
}
});
});
关于jquery - 具有受限放置区的拖放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15692662/