私は次のhtmlを持っています:
<div id="cats-and-links">
<div class="cat favorites">
<h2>Favorites</h2>
<ul class="ui-sortable">
<li class="place-holder info">To add items to your favorites drag them over to this list from their original list.</li>
</ul>
</div>
<div class="cat">
<h2>Participants</h2>
<ul class="ui-sortable">
<li data-id="1"><a href="/program/2/control-panel/demo1">Demo 1</a></li>
<li data-id="2"><a href="/program/2/control-panel/demo2">Demo 2</a></li>
<li data-id="3"><a href="/program/2/control-panel/demo3">Demo 3</a></li>
<li data-id="4"><a href="/program/2/control-panel/demo4">Demo 4</a></li>
<li data-id="5"><a href="/program/2/control-panel/demo5">Demo 5</a></li>
</ul>
</div>
<br class="clear">
</div>
私は次のjqueryを持っています:
$(document).ready(function() {
var place_holder = $('.place-holder');
var fav = $('.favorites ul');
var cat = $(".cat ul");
cat.sortable({
connectWith: fav,
cursor:'move',
helper:'original',
placeholder:'ui-state-highlight',
receive: function(event, ui){
console.log(ui);
ui.item.addClass('added');
if(ui.item.hasClass('added')){
fav.sortable('option', 'revert', true);
cat.sortable('option', 'revert', true);
}
//console.log(ui.item.attr('data-id'));
//ajax here to get the list item favorited.
},
over: function(event, ui){
place_holder.hide();
},
stop: function(event, ui){
if(fav.children().length == 1){
place_holder.show();
}
},
remove: function(event, ui){
ui.item.clone().appendTo(fav);
$(this).sortable('cancel');
}
}).disableSelection();
});
2つの問題を解決したいと思います。元のアイテムに「クラスを追加」し、再度追加できないようにすることで修正しようとした問題の1つ。だから問題:
- 項目が「お気に入り」リストに既に追加されている場合、あるリスト (「参加者」) の項目を別のリスト (「お気に入り」) に移動できないようにします。
- ("参加者") リストでドラッグ ドロップによる並べ替えを許可しないでください。
どんな助けでも大歓迎です。