Autor | Zpráva | ||
---|---|---|---|
Wdoleq Profil * |
Ahoj rád bych znal názor na druh postupů v JS.
Chci si na určitý seznam odkazů pověsit funkci <a href="">odkaz 1</a><br /> <a href="">odkaz 2</a><br /> <a href="">odkaz 3</a> 1/ Framework jQuery <script> $("a").click(function(e){ alert($(this).text()); e.preventDefault(); }) </script> 2/ Pure JS var links = document.getElementsByTagName("a"); for (i = 0; i < links.length; i++) { links[i].onclick = function(){ alert(this.innerHTML); return false; } } 3/ Nastavit odkazům přímo onclick <a href="" onclick="foo();">odkaz 3</a>
Který způsob je dle Vás nejvhodnější, nejrychlejší a případně zda-li jsem na nějakou možnost zapomněl, prosím o doplnění, moc mi to pomůže v rozšíření obzorů. Moderátor Chamurappi: Vkládej prosím kódy mezi značky [>pre] a [>/pre] (stačí kliknout na ).
|
||
_es Profil |
#2 · Zasláno: 8. 3. 2011, 21:08:59 · Upravil/a: _es
Druhý variant má chybičku, že je pre káždý odkaz vyrábaná iná funkcia a chýba príkaz var v cykle, lepšie by bolo:
function f(){ alert(this.innerHTML); return false; } for (var i = 0; i < links.length; i++) links[i].onclick = f; href .
Wdoleq: „zda-li jsem na nějakou možnost zapomněl,“ Môžeš použiť prebublávanie udalosti. |
||
Wdoleq Profil * |
#3 · Zasláno: 9. 3. 2011, 00:28:37
Děkuji uctivě. Documents.links znám, tento příklad je pouze orientační. Konkrétní ukázka probublávání je nějaká zbytečně složitá a pro mě ne zcela pochopitelná, rozhodně ovšem děkuji za ukázku kódu a vyjmutí anonymní funkce z cyklu.
|
||
Wdoleq Profil * |
Mohu ještě jeden dotaz?
Nevím jaký je rozdíl v zápisu, při použití se kód chová identicky. 1/ function foo() { // code } 2/ var foo = function() { // code } Stačí kratké vysvětlení. -------------------- http://diskuse.jakpsatweb.cz/?action=vthread&forum=8&topic=104625#5 a zajímalo by mne také co přesně znamená syntaxe void 0, k jakému účelu. :-) Velmi děkuji a přeji dobrou noc. |
||
_es Profil |
#5 · Zasláno: 9. 3. 2011, 01:34:23 · Upravil/a: _es
Wdoleq:
„Nevím jaký je rozdíl v zápisu, při použití se kód chová identicky.“ Premenná foo existuje v oboch prípadoch, v rovnakom kontexte, už pred príkazom.
No v druhom prípade má pred príkazom hodnotu undefined , zatiaľčo v prvom prípade sa pred aj za príkazom rovná tej funkcii.
Takže sa celkom identicky nechová. „co přesně znamená syntaxe void 0“ Je to použitie operátora void, neslúži na nič iné, len na získanie hodnoty undefined . Ak nie je pri protokole javascript: posledná hodnota undefined , tak je aktuálny dokument tou poslednou hodnotou prepísaný.
|
||
Wdoleq Profil * |
#6 · Zasláno: 9. 3. 2011, 01:43:46
__es:
Ohledně void děkuji, já jen že jsem viděl syntaxi void 0 místo void(0) tak mne to udivilo. Ohledně volání funkcí, ma smysl tedy vůbec používat druhý způsob? Hodí se to někdy? Děkuji, to bude pak již vše co jsem potřeboval vědět. |
||
_es Profil |
#7 · Zasláno: 9. 3. 2011, 01:52:10
Wdoleq:
„že jsem viděl syntaxi void 0 místo void(0)“ void hodnota a void(hodnota) je to isté, prvé je kratšie, druhé možno niekedy jasnejšie.
„Ohledně volání funkcí, ma smysl tedy vůbec používat druhý způsob? Hodí se to někdy?“ Premenná môže hocikedy odkazovať na ľubovolnú funkciu a prostredníctvom tej premennej sa dá funkcia aj volať. To každý programovací jazyk neumožňuje a dá sa to aj využiť. Premenná môže odkazovať v rôznom čase na rôzne funkcie. |
||
Časová prodleva: 13 let
|
0