2010-07-22 10 views
25

Bu soru her şey bitti, fakat hiçkimse benimkiyle aynı sorunu yaşamadı. BujQuery UI ile Sortable + iç içe geçmişler listesi 1.8.2

$(function(){ 
    $('#unique-ul').sortable({items:'li'}); 
}); 

gibi bir şey yaptığınızda

Ben "Sadece çalışmak" beklersiniz. Ve büyük, öyle. Herhangi bir listeden herhangi bir <li>'u herhangi bir listeye sürükleyebilirim ve bu <li>'un herhangi bir alt listesi sürüklenir. Ancak, sürüklerken, nereye düşürülmesi gerektiği konusunda kafanız karışıyor gibi görünüyor. İşte 1.8.0 kullanarak bir örnek; aynı davranışı görüntüler.

http://jsbin.com/ewuxi3/

Bu davranış jQuery UI tarafından desteklenen inanmak bana yol bu konuda buldum Diğer tüm yanıtların

; http://dev.jqueryui.com/ticket/4333

bulamıyorum ben Doing It Wrong am anlaşılacağı için, bu sorunu olmuştur herkesten: örneğin, burada iç içe Draggables hakkında 1.7 karşı kayıtlı bir hatasıdır. Herhangi bir ipucu?

cevap

75

Bunun nedeni, Sortable'ın iç içe geçmiş <li>'un üzerindeyseniz ya da bunu içeren kutuda olup olmadığını bilmediğinden gerçekleşir.

<ul> 
    <li><div>Item 1</div> 
    <ul> 
     <li><div>Subitem 1</div></li> 
     <li><div>Subitem 2</div></li> 
    </ul> 
    </li> 
    <li><div>Item 2</div></li> 
    <li><div>Item 3</div></li> 
</ul> 

ve seçenek toleranceElement: '> div' ayarlayın: Bir çözüm Böyle bir yapıyı kullanmaktır. Neden belgelenmediğini bilmiyorum, ama orada ve kesişen noktaları hesaplarken sadece <div>'u dikkate almak için Sortable'a söyler.

İlgilendiğiniz durumda, son zamanlarda iç içe geçmiş sıralamayı kolaylaştıran developed a plugin, anında yeni iç içe geçmiş listeler oluşturmanıza izin veriyor.

+4

Eklentiniz mükemmel görünüyor - Demo ile bir oyunum vardı ve boş bir anım olduğunda bunu kendim uygulamasına bakacağım. – Altreus

+1

(Yanıtı kabul edildi olarak işaretlemek ister misiniz? :)) – mjsarfatti

+1

bu BOSS görünüyor. Tüm öğleden sonra, bu kadar basit bir şey bulmaya çalıştım. teşekkür ederim! –