To jest moja obserwacja i prawdopodobne wyjaśnienie tego dziwnego zachowania.
Podczas przenoszenia elementu od pytań pojemnika odpowiedziom pojemnika, zastępczy początkowo dodaje się do końcu odpowiedzi pojemnik przed dalszym ruchem kursora dostaje to między Odpowiedź 1 i answer2.Ideally, to nie powinno się zdarzyć jako zastępczy powinien przeskocz przed odpowiedzią1, a następnie pomiędzy odpowiedzią1 i odpowiedzą2.
* PS: * Ten efekt może nie być widoczny w oknie jsfiddle, ale jeśli tworzysz świeżą stronę HTML z podanym kodem, zobaczysz, co mówię.
Dalsze dochodzenie ujawnia, że istnieje błąd w sortowalnej wtyczce JQuery. Pobierz wersję deweloperską jquery.ui.sortable.js i znajdź tę frazę "var dist = 10000; var itemWithLeastDistance = null". Celem tego fragmentu kodu jest znalezienie najbliższego elementu , gdy kursor przechodzi z jednego kontenera do drugiego.
Obserwuj zmienną "cur" (Dodałem polecenia console.log() dla firebug). Wartością tej zmiennej jest zawsze . Ponieważ wartość zmiennej cur zawsze wynosi "0", kod błędnie oblicza ostatni element jako element "" zLeastDistance "i tam nie trafia.
//When entering a new container, we will find the item with the least distance and append our item near it
var dist = 10000; var itemWithLeastDistance = null; var base = this.positionAbs[this.containers[innermostIndex].floating ? 'left' : 'top'];
for (var j = this.items.length - 1; j >= 0; j--) {
if (!$.ui.contains(this.containers[innermostIndex].element[0], this.items[j].item[0])) continue;
var cur = this.items[j][this.containers[innermostIndex].floating ? 'left' : 'top'];
//my comments
console.log("cur : %s for iteration: %s has base %s", cur, j, base);
if (Math.abs(cur - base) < dist) {
dist = Math.abs(cur - base); itemWithLeastDistance = this.items[j];
//my comments
console.debug(this.items[j]);
}
}
Daj mi znać, co społeczność myśli. możemy to zgłosić zespołowi jquery ui.
Czy to może być problem z przeglądarką? Potrafię przeciągać wszystko od pytania do odpowiedzi i odpowiadać na pytania bez żadnego problemu w Chrome. BTW - wyrównanie w IE7 jest wyłączone. – nolabel
Emulowałem ten problem w FF, Operze i Chrome. Czy możesz przeciągnąć pytanie na górę listy Odpowiedzi bez uprzedniego przeniesienia elementu zastępczego na drugą pozycję? –
Nie mogę odtworzyć tego problemu w przeglądarce Chrome 9, ponieważ jest ona warta. Pytania pojawiają się dokładnie tam, gdzie przeciągam je w odpowiedziach, w tym na górze. –