【发布时间】:2012-06-23 06:54:55
【问题描述】:
我想我会将工作解决方案放在这里,供对代码示例感兴趣的其他人使用。
每个可拖动项目都将其 id 设置为项目 id。这是可拖动项目的源视图:
<div id="item">
<ul>
<li class="list_none" id="15">
Black phone
</li>
</ul>
</div>
这是使它“可拖动”的 jQuery 脚本。我已经更新它以反映 dmck 的输入:
$( "#item li" ).each(function(index, value) {
$this = $(value);
var drag_id = $this.attr("id");
$this.draggable({
appendTo: "body",
helper: "clone"
}).data("drag_id", drag_id)
});
将 drag_id 值传递给 droppable 是个问题,但现在可以了。
$( "#group ul" ).droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
accept: ":not(.ui-sortable-helper)",
drop: function( event, ui ) {
// alert(ui.draggable.data("drag_id")); // left this alert in for other tinkerers
$('input[name=user_id]').val(ui.draggable.data("drag_id"));
$(this).closest('form').submit();
return false;
$( "<li></li>" ).text( ui.draggable.text() ).appendTo( this );
}
谢谢。
【问题讨论】:
-
顺便说一句:HTML 规范要求 ID 属性不能以数字开头。
-
@Diodeus,见w3.org/TR/html5/global-attributes.html#the-id-attribute。我通常不会根据 id 来设计项目,所以我应该没问题。