我使用連接到一個排序列表,當一個項目被丟棄到排序列表似乎不正確克隆原來這主要是運作良好,除了一個jQuery UI拖動列表元素ID或任何關聯的jquery數據()。jQuery UI的connectToSortable如何進入下降元素ATTR的
奇怪的是,這些東西可以從接收函數內部獲得,但它似乎並沒有真正將它們保存到元素中,所以像可排序列表的更新函數一樣,不會正確地看到新的丟棄元素,因爲新的li元素不會正確地「真的有一個ID。
我在做什麼錯?
的Javascript:
$(document).ready(function() {
$("#dest").sortable({
update : function() {
onUpdate();
},
receive: function(event, ui) {
alert("dropped item ID: "+ui.item.attr('id'));
}
});
jQuery('#src > li').draggable({helper:'clone',connectToSortable:'#dest'});
});
function onUpdate() {
var order = $('#dest').sortable('toArray');
var txt = "Order: "+order;
$("#info").text(txt);
}
HTML:
Source List (dragable):
<div>
<ul id="src">
<li id="src_0">src 0</li>
<li id="src_1">src 1</li>
<li id="src_2">src 2</li>
</ul>
</div>
Target List (sortable):
<div>
<ul id="dest">
<li id="dest_0">dest 0</li>
<li id="dest_1">dest 1</li>
<li id="dest_2">dest 2</li>
</ul>
</div>
<span id="info">
Waiting update...
</span>
演示在http://jsfiddle.net/h3WJH/1/
我寫了這個之後,我認識格雷格的解決方案要好得多!使用$ .data方法並不適合我,但元素上的data-something屬性(如給出的示例中所示)適用。 – lfagundes