| 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: 13 let
|
|||
0