Autor Zpráva
Sylar
Profil
Zdravím,
udělal jsem na stránce možnost přesouvání boxů v rámci několika sloupců - http://jqueryui.com/demos/sortable/#portlets .

Přemýšlím jak jednoduše zpracovat data a zjistit aktuální pozici daných prvků. Jisté řešení mi nabízí funkce update (http://jqueryui.com/demos/sortable/#event-update), ale ta mi ukazuje pouze absolutní pozice jednotlivcýh boxů (left, top) a mě by stačilo pouze pořadí jednotlivých boxů. Což by se samozřejmě dalo podle pozic vypočítat, ale přijde mi to dost nešikovné a pracné.

Lze přímo z jQuery dostat "seznam" jednotlivých boxů jak jdou za sebou nebo má někdo vymyšlený jiný, lepší způsob?
Chamurappi
Profil
Reaguji na Sylara:
ze sortable jquery
přímo z jQuery dostat
Je to jQuery UI, ne jQuery.

ale přijde mi to dost nešikovné a pracné
Stejně používáš jQuery UI, tam je takových nešikovností mnohem víc :-)
Jejich ukázka mi mimochodem dělá v Exploreru 7 pěkné blbosti, mezi boxy se objevuje nepochopitelný průvan, místo zaujímané boxem se při jeho uchopení scvrkne…

nebo má někdo vymyšlený jiný, lepší způsob?
Když jsem dělal něco podobného já, zjišťoval jsem pozici v DOMu. Každému prvku jsem dal unikátní atribut, podle kterého jsem poznal, co je zač, a pak jsem projel jednotlivé sloupce, bral <div> za <div>em a zaznamenával si jejich atribut do polí. Podobný postup by asi měl fungovat i u tebe.
Medvídek
Profil
Sylar:
.sortable('toArray') Ti seřadí do pole IDčka těch boxů, podle jejich aktuální pozice.
http://docs.jquery.com/UI/Sortable#method-toArray
Sylar
Profil
Medvídek:
díky. to je ono.

Ještě narážím na jeden problém a to ten, že funkce update, kterou používám pro odesílání polí na server, se provede dvakrát pokud přehodím prvek v rámci dvou sloupců. Pokud přehazuji prvky pouze v rámci jednoho sloupce, provede se jen jednou - OK, ale pokud přehodím prvek zp ravého do levého sloupce, funkce se provede dvakrát a mě se tudíž zbytečně odešlou data dvakrát i na server.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0