JQuery sortable, reset pozic – JavaScript, AJAX, jQuery – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

JQuery sortable, reset pozic – JavaScript, AJAX, jQuery – Fórum – Programujte.comJQuery sortable, reset pozic – JavaScript, AJAX, jQuery – Fórum – Programujte.com

 

Vlákno bylo úspěšně vloženo.
Pokud sám přijdeš na řešení, nezapomeň ho sem přidat!
Petr
~ Anonymní uživatel
746 příspěvků
20. 12. 2015   #1
-
0
-

Dobrý den,

rád bych vás poprosil o malou radu s jQuery sortable.

$("#sortableGalerie").sortable({containment: 'document', tolerance: 'pointer',
                                    cursor: 'pointer', opacity: 0.60,
                                    update: function(event, ui) {
                                                                                
                                        var list = [];
                                        $("#sortableGalerie li").each(function() {
                                            list.push($(this).attr('idNumber'));    
                                        });
                                        var listString = list.toString();
                                        console.log(listString);
                                        
                                        $.nette.ajax({
                                            type: 'GET',
                                            url: "?do=changeOrder",
                                            data: {
                                                list: listString
                                            },
                                        });
                                    }
                         });

Před změnou jsou prvky seznamu uspořádané takto: 1, 2, 3, 4, 5 ...

Když přehodím první dva prvky: 2, 1, 3, 4, 5

Teď, když znovu prohodím první dva prvky, bude to vypadat zase takto: 1, 2, 3, 4, 5

Dává to smysl. Ale já bych potřeboval, aby se to chovalo trošku jinak. Aby se po každé změně resetovali pozice, tedy aby to vypadalo takto:

  • první prohození prvních dvou prvku 2, 1, 3, 4, 5
  • druhé prohození prvních dvou prvku 2, 1, 3, 4, 5 (je to stejné, protože se provedla stejná změna, prohodily se první dva prvky)

Doufám, že je to alespoň trochu pochopitelné.

Pokud někdo zná nějaký sortable přepínač, který tohle řeší, byl bych moc rád. Zatím procházím dokumentaci, ale nemám řešení.

Děkuji za rady.

Nahlásit jako SPAM
IP: 89.190.62.–
NeregistrovanyHookyns
~ Anonymní uživatel
62 příspěvků
20. 12. 2015   #2
-
0
-

Nevím jestli jsem tě pochopil správně, snad ano. Předpoklad pro správnou funkci mé úpravy je, že idNumber je pouze číslo položky (vždy číslované od 1), které říká, kolikátá ta položka je. Jestli je to nějaký identifikátor pro server - jak jsem si z počátku myslel - tak jsem tě pochopil špatně a má úprava ti nebude k ničemu.

$("#sortableGalerie").sortable({containment: 'document', tolerance: 'pointer',
	cursor: 'pointer', opacity: 0.60,
	update: function(event, ui) {
		var list = [];
		var tmp;

		$("#sortableGalerie li").each(function(i) {
			tmp = $(this);
			list.push(tmp.attr('data-id-number'));
			tmp.attr('data-id-number', i + 1);
		});

		var listString = list.toString();
		console.log(listString);

		$.nette.ajax({
			type: 'GET',
			url: "?do=changeOrder",
			data: {
				list: listString
			}
		});
	}
});

Jediné co jsem udělal je, že po zapsání položek do seznamu přepisuji jejich IDčka, aby odpovídali jejich novým pozicím. BTW, idNumber jsem si změnil na data-id-number.

Nahlásit jako SPAM
IP: 88.101.12.–
Petr
~ Anonymní uživatel
746 příspěvků
20. 12. 2015   #3
-
0
-

#2 NeregistrovanyHookyns
Díky. Pořád jsem hledal řešení přímo v jQuery sortable a přitom stačila taková jednoduchá  úprava.

Ještě jednou díky, ušetřil si mi spoustu času.

Nahlásit jako SPAM
IP: 89.190.62.–
NeregistrovanyHookyns
~ Anonymní uživatel
62 příspěvků
20. 12. 2015   #4
-
0
-

V pohodě, nemáš za co, rád pomůžu. :)

Bohužel je to chyba spousty "JavaScripterů". Dnes všichni říkají ať používáte knihovny, proč si něco sakra píšete sami? Pak bohužel vznikají tyto situace, kdy si prostě neporadíte, protože jste na ty knihovny až moc fixovaní a nemáte základy.

Trošku OT:
Kvůli době knihoven přibývá počet "JavaScripterů", ale ne počet JavaScripterů. To je taky důvod, proč jsem pod nabídkou JavaScript Programátor našel popis spíše HTML kodera, který jen sem tam zavolá např. .fade() z jQuery. :D A důvod, proč opravdový JavaScript programátor, který se v JS zabývá OOP a řeší výkon aplikace, dostává cca 100 000 Kč/měsíc. Já jsem za to jen rád. :D Jen si potom kodeři myslí, že jsou JS developeři a znalost JS upadá, což už je k zamyšlení.

Nahlásit jako SPAM
IP: 88.101.12.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 2 hosté

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý