Autor Zpráva
Greeg
Profil
Ahoj, mam tento kod (jQuery):

$("button")
  .click(function(e) { console.log(1); })
  .click(function(e) { console.log(2); })
  .click(function(e) { console.log(3); });


Tlačidlu sa teda priradia tieto 3 eventy, po kliknutí na neho sa spustia v poradí v akom boli pridané ("1", "2", "3"). Existuje spôsob ako môźe event prerušiť spúšťanie ďalších eventov nad rovnakým elementom, resp aký kod pridať do eventu vypisujúceho "2" aby sa už nespustil event vypisujúci "3"? Vďaka.
joe
Profil
Možná by pomohlo return false; nejsem si jistý.

Ale jaký máš důvod takhle řetězit události na jednom elementu? Osobně jsem to zatím nikdy nepotřeboval.
Chamurappi
Profil
Reaguji na Greega:
e.stopImmediatePropagation()


Reaguji na joa:
Osobně jsem to zatím nikdy nepotřeboval.
Jsem na tom podobně. Myslím, že se to prakticky hodí jen u statistik prokliků nebo u podobných „tichých společníků“, kteří se nenásilně vetřou mezi jiné naskriptované aktivity. Pak je ovšem trochu nešikovné, že se ovladač události může rozhodnout, že neznámému cizímu skriptu upře informaci o kliknutí. Tenhle paradox jsem na Event Modelu W3C DOMu nikdy moc nepochopil, proto se staromódně držím DOMu 0 (tedy vlastností onclick apod., do kterých můžu přiřadit pouze jednu funkci) a žádné druhy bublání (aka propagace) téměř nikdy nezakazuji, neb jde o předčasné posouzení předem neznámého významu události.

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: