2010-03-09 12 views
5

Ich habe eine sortierbare Liste, mit der ich arbeite, die Elemente durch ein anderes Skript durch jquery hinzugefügt und entfernt haben kann und habe ein seltsames Problem. Diese neu generierten Elemente scheinen ziehbar zu sein, aber sie sortieren nicht wirklich, es sei denn, sie sind bereits beim Laden der Seite vorhanden. Ich habe versucht, sortierbar ("refresh") zu verwenden, aber es scheint keine Wirkung zu haben.jquery ui sortierbar ('refresh') funktioniert nicht!

+0

Ich habe dieses Problem auch. Wenn Sie die Aktualisierung für einen Klassenselektor ausführen, wird die Klasse "ui-sortable" im DOM nicht hinzugefügt. Hast du das jemals gelöst? – dmrnj

+0

Ich kann mich nicht erinnern. Ich denke, ich habe es verschrottet und etwas anderes gemacht. –

Antwort

2

Um Ihnen die Möglichkeit zu geben, diese Frage zu schließen, und nur als Referenz für den Fall, dass jemand darüber stolpert, scheint dies in der neuesten jquery-ui gut zu funktionieren. Hier ist ein Jfiddle: http://jsfiddle.net/fordlover49/mVrGA/

+0

Nicht gerade eine "Lösung", aber das Problem existiert nicht mehr. Diese Information ist jedoch äquivalent. –

+0

Dies ist kein Lösungszeitraum. Ihr Beispiel enthält zwei Listen, in denen alle Elemente bereits als sortierbar initialisiert wurden. Diese Frage fragt nach Elementen, die zu einer bereits initialisierten Liste hinzugefügt werden. – Mario

+0

Sie wurden nicht alle als sortierbar initialisiert. Beachten Sie, dass nach der Initialisierung zusätzliche Elemente zur ungeordneten Liste hinzugefügt werden. Um dies zu beweisen, führen Sie einfach einen setTimeout um den Code herum, der die "hinzugefügten" Listenelemente hinzufügt, und Sie sehen, dass die Liste ohne die neuen Elemente sortiert werden kann. Nach dem Zeitlimit werden die neuen Elemente automatisch sortiert. Wie in meiner ursprünglichen Antwort erwähnt, habe ich es nicht behoben, ich habe nur beobachtet, dass das jQuery-ui-Team das Problem in der neuesten Version behoben hat. – PriorityMark

2

Ich hatte ein ähnliches Problem. Sobald ich ein neues Element zur sortierbaren Liste hinzugefügt habe, war nichts mehr ziehbar. Meine Lösung war die destroy Methode aufzurufen:

$(".selector").sortable("destroy"); 

zuerst und dann wieder machen sortierbar.

Verwandte Themen