Autor | Zpráva | ||
---|---|---|---|
crash01 Profil |
#1 · Zasláno: 13. 5. 2012, 17:13:59
Zdravím,
snažím se o kompletní odsunutí javascriptu mimo HTML soubor. Události kontroluji až tam (ne pomocí atributů typu onClick), ale potřeboval bych tímto způsobem předávat i nějaké atributy. Jedinné řešení, které mě momentálně napadá, je použít vlastní HTML atributy (místo <span onclick="funkce('neco')"></span> použít něco jako <span id="nejakeID" parametr="neco"></span> ), ale nevím jestli to není trochu prasárna.
Co používáte vy? Díky :) |
||
Darker Profil |
#2 · Zasláno: 13. 5. 2012, 17:24:54
Nevím kde jsi na tenhle nápad přišel, ale jistě to nebylo moc dobré místo. Obvykle se to prasí pomocí jQuery:
$(document).ready(function(){ $("#nejakeID").bind("click", function(){ funkce('neco'); }); }); |
||
crash01 Profil |
#3 · Zasláno: 13. 5. 2012, 18:47:15
Darker:
Myslím, že jsme se nepochopili. Nejde o to, jak volat funkce bez uvedení v kódu, ale o to, jak jim předávat různé parametry. To mám jako volat funkce přímo z HTML? |
||
Darker Profil |
#4 · Zasláno: 13. 5. 2012, 18:50:13
No a proč dané parametry nevypíšeš jako ragumenty funkce funkce?
|
||
Chamurappi Profil |
#5 · Zasláno: 13. 5. 2012, 18:55:11
Reaguji na crasha01:
„To mám jako volat funkce přímo z HTML?“ Čemu to vadí? „použít vlastní HTML atributy“ Mně to jako prasárna nepřijde. Pokud máš jistotou, že budeš jediný, kdo s tím atributem bude pracovat, tak si můžeš být jistý stoprocentní funkčností. |
||
crash01 Profil |
#6 · Zasláno: 13. 5. 2012, 19:04:54 · Upravil/a: crash01
Darker, Chamurappi:
Protože chci mít tuto funkci přiřazenou třeba k více elementům, kde pokaždé bude volána s jinými parametry. Chamurappi Druhá věc je, že chci mít názvy funkcí mimo HTML třeba kvůli případné změně struktury - přejmenování funkcí, apod. |
||
Darker Profil |
#7 · Zasláno: 13. 5. 2012, 20:02:34
crash01:
„kde pokaždé bude volána s jinými parametry.“ Jaký je rozdíl mezi tím, když když parametry napíšeš do vlastních atributů a nebo je vypíšeš jako argumenty volaných funkcí? <div onclick="funkce('<?=$params[$i]?>')"></div> <div onclick="funkce(this.p)" p="<?=$params[$i]?>"></div> |
||
crash01 Profil |
#8 · Zasláno: 13. 5. 2012, 20:59:32
Darker:
A kam mám ty parametry napsat, když tu JS funkci nevolám in-line => žádný atribut onlick. Mám odchytávání událostí udělané v externím JS, uvedu příklad s jQuery. // Javascript $("#nejakeID").click(function () { // Získání parametru pro funkci (var atribut = ...) - např z vlastního atributu funkce(atribut); }) // HTML soubor ... <span class="tlacitko">Tlačítko 1</span> <span class="tlacitko">Tlačítko 2</span> ... A já potřebuju předat odlišené parametry pro tlačítko 1 a tlačítko 2. |
||
Radek9 Profil |
crash01:
<span class="tlacitko" data-atribut="nějaké informace">Tlačítko 1</span> <script> $(".tlacitko").click(function(){ funkce(this.getAttribute("data-atribut")); }); </script> |
||
Chamurappi Profil |
#10 · Zasláno: 13. 5. 2012, 21:33:15
Reaguji na crasha01:
„když tu JS funkci nevolám in-line => žádný atribut onlick“ V tom spočívá ta moje otázka — proč se bráníš atributu onclick ?
„chci mít názvy funkcí mimo HTML třeba kvůli případné změně struktury - přejmenování funkcí, apod.“ To je hodně hypotetický důvod, ne? Stejně tak bys mohl chtít změnit označení toho parametru a musel bys přejmenovat ten svůj vlastní atribut… |
||
crash01 Profil |
#11 · Zasláno: 13. 5. 2012, 22:27:13
Chamurappi:
„To je hodně hypotetický důvod, ne?“ To asi je :D. Spíš jsem chtěl ten javascript přímo v HTML co nejvíc omezit - odsunout to jako CSS a propojení zajišťovat pouze přes id, class, tagname, atd. Celkově se mi tam ten kód s událostmi volanými přímo u elementu spíš nelíbí, ale přidávat vlastní atribut asi taky není úplně šťastná volba. |
||
Časová prodleva: 12 let
|
0