2010-11-29 24 views
1

以下は私のコードです。jqueryは条件に基づいて削除可能です

$(document).ready(function(){ 
    $("#container li").draggable({ revert: 'invalid' }); 
    var total = 0; 
    $("#selected ul").droppable({ 
     drop: function(e, ui) { 
      $(ui.draggable).css({ top: 0, left: 0 }).appendTo(this); 
     }, 
     accept: function() { 
      return $("#selected li").length < 5; 
     }, 
     placeholder: true 
    }); 
    $("#container ul").droppable({ 
     drop: function(e, ui) { 
      $(ui.draggable).css({ top: 0, left: 0 }).appendTo(this); 
     }, 
     placeholder: true 
    }); 
}); 

それは私たちが選択したのdivおよびその逆に、コンテナのdivからLI要素をドラッグ&ドロップすることができますのようなものです。すべてが機能していますが、ドラッグアンドドロップされたLI要素はソートされません。つまり、コンテナから選択されたLI要素をドロップすると、常にLIリストの最後に移動します。選択した要素からコンテナdivに要素をドロップすると同じことが起こります。

したがって、LIをソート可能にするにはどうすればよいですか?ここで

はリンクです:http://www.jsfiddle.net/nick_craver/HemSU/1/

これを解決するために助けを必要としてください。おかげさまで

+1

jQuery UI 'Sortable'を調べたいと思うかもしれません。http://jqueryui.com/demos/sortable/ – sje397

答えて

2

あなたは(元の質問とは非常に異なっ)後にしているものについては、.sortable()はこのような、より適切であろう:

$(document).ready(function(){ 
    function checkMax() { 
     var max = $("#selected li").length >= 5; 
     $("#container ul").sortable("option", { 
      revert: max, connectWith: max ? '' : '#selected ul' 
     }); 
    } 
    $("#selected ul").sortable({ 
     connectWith: '#container ul', 
     receive: checkMax 
    }).disableSelection(); 
    $("#container ul").sortable({ 
     connectWith: '#selected ul', 
     receive: checkMax 
    }).disableSelection(); 
}); 

You can test it out here

+0

最後に正しいものを手に入れました。 Nickに感謝します。 – gautamlakum

1

ULに追加すると、最後に終了します。

リスト内の特定の場所に挿入したい場合は、ULを削除する可能性があります。

次に、追加するのではなくLIを挿入します。

関連する問題