Autor Zpráva
Enngage
Profil
Ahoj,

Mám kód pro animaci elementu, který slouží jako upozornění uživatele po uložení údajů (Uživatel klikne na save a v okně se mu objeví zpráva, že bylo uloženo a následně zmízí).

$("#click").click(function () {
  $("#element").fadeIn(250).delay(1000).fadeOut(250);
});

Problém je v tom, když uživatel klikne vícekrát na #click - eventy se jakoby nakupí. Tz. kliknu 10 rychle za sebou na #click a teď se jeden po druhem budou vykonávat animace a celkem bude trvat přes 15 sekund než se všechny dokončí. To působí značně rušivě. Chtěl bych po druhém kliknutí něco jako "Terminate" animaci předchozího kliknutí a začít animace úplně od začátku. Máte někdo nápad jak by toho šlo docílit?

Budu rád za každou radu, lámu si tady s tí už nějakou dobu hlavu.
final
Profil
nerieši to náhodou stop() ?
Enngage
Profil
final:
Díky za rychlou odpověď, stop jsem zkoušel, ale nepodařilo se mi to tím vyřešit, možná jsem na to šel špatně. Tady je fiddle, který znázorňuje můj problém.

http://jsfiddle.net/z3FvL/1/

Edit: Máš pravdu, předtím jsem na šel zbytečně složitě. Stačí jednoduché:

$("#clickme").click(function () {
  $("#status").stop().fadeIn(250).delay(2500).fadeOut(250);
   });

Edit2: Tak bohužel nefunguje podle všech představ. Stop() není správné řešení tady.
final
Profil
určite je to nejaká funkcia, ale ja by som to jednoducho vyriešil premennou
var zobrazeno = false;
$("#clickme").click(function () {
  if (!zobrazeno) {
  zobrazeno = true;
  $("#status").fadeIn(250).delay(2500).fadeOut(250);
  }
   });
http://jsfiddle.net/z3FvL/6/
edit: nevšimol som si tam delay, tak potom napríklad takto:
http://jsfiddle.net/z3FvL/8/
Enngage
Profil
Znovu děkuju, ale vypadá to, že řešení tohoto problému je složitější než se zdá.

Příklad? Na stránce je několik těchto save buttonů, které jsou kliknuty rychle po sobě. Když uživatel klikne na jeden a pak po 2 sekundách na druhý, tak status zmizí po půl sekundě (2.5-2=0.5s). V případě, že by uživatel klikl na save těsně před vypršení animace, tak by se nestihl dozvědět, že bylo uloženo.

se stop() byl problém když bylo save stisknuto hodněkrát po sobě (10x rychlý klik) - fronta se začala zaplňovat bez ohledu na stop..
final
Profil
Nerozumiem, koľko máte tých status div-ov na webe?
pcmanik
Profil
Enngage:
Zrejme nevieš čítať v dokumentácii, ale metóda .stop() má dva nepovinné parametre, keď prvý nastavíš na true, tak sa všetky animácie ktoré nasledujú zmažú.

Resp. najlepšie bude keď priamo zavoláš vyčistenie všetkých animácii ktoré nasledujú a následne priradíš ďalšie.

A najjednoduchšie, nestačí zavolať ten click pomocou .one()?

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