2011-08-19 9 views
11

Próbuję napisać kilka testów JavaScript z wyprzedzeniem, które mogą przetestować funkcję przeciągania i upuszczania z JQuery UI sortable list używam w mojej aplikacji internetowej. Jednak mam problem, ponieważ lista sortowalna JQuery UI nie reaguje na symulację zdarzeń myszy.Testy JavaScript symulujące przeciąganie dla list sortowanych JQuery UI

Próbowałem wielu technik, aby przetestować to, ale w końcu znalazłem JQuery's własny simulation plugin który wydaje się zapewnić potrzebną funkcjonalność. Jednak po uruchomieniu symulacji sortowalna lista nie reaguje na zdarzenie przeciągania, ale inne komponenty, takie jak przeciąganie, odpowiadają.

Wszystko to może być bardzo łatwo zademonstrowane przy pomocy simple drag simulation example, które ułożyłem. W tym przykładzie osadziłem wtyczkę jquery.simulate, ale zmodyfikowałem funkcję przeciągania, aby spowolnić uruchamiane zdarzenia, dzięki czemu można wizualnie zobaczyć, co się dzieje. Jak widać, wtyczka symulacji prawidłowo przesuwa pozycję 1 do pozycji między pozycjami 3 i 4, jednak po uruchomieniu zdarzenia mouseup następuje powrót do oryginalnej pozycji zamiast zmiany kolejności na liście. Podejrzewam, że musi być inne wydarzenie, którego szuka biblioteka JQuery, ale niestety nie udało mi się go znaleźć.

Proszę przejść do http://jsbin.com/efuyef/7/edit#javascript,live, aby zobaczyć przykład, w którym przeciąganie listy do sortowania nie powiedzie się. Po prostu odśwież stronę, aby uruchomić symulację ponownie.

Czy ktoś ma pomysły, jak poprawnie symulować zdarzenie przeciągania na liście do sortowania? Twoja pomoc byłaby doceniona.

+1

Wystąpił ten sam problem, ponieważ jquery.simulate nie może przeciągać elementów sortujących. Dziękuję za to. Już zaczynałem wątpić w moje zdrowie psychiczne ... – kangax

Odpowiedz

20

Po wielu poszukiwaniach w Internecie, nie znalazłem żadnego rozwiązania tego problemu, więc poszedłem dalej i opracowałem własne rozwiązanie.

Zapoznaj się z repozytorium GitHub dla mojego JQuery plugin jquery.simulate.drag-sortable.js

Jeśli znaleźliśmy żadnych problemów z tym, proszę napisać test do replikowania problem i widelec projektu lub podnieść kwestię w Github.

+3

Och, człowieku, właśnie zrobiłeś mój dzień. Miałem również ten sam problem z sortable i jquery.simulate. Dzięki za to! – mynameistechno

Powiązane problemy