Autor | Zpráva | ||
---|---|---|---|
Greeg Profil |
#1 · Zasláno: 1. 3. 2011, 19:32:01
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 |
#2 · Zasláno: 1. 3. 2011, 22:11:37
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 |
#3 · Zasláno: 2. 3. 2011, 03:36:56 · Upravil/a: Chamurappi
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.
|
||
Časová prodleva: 13 let
|
0