Autor | Zpráva | ||
---|---|---|---|
Kcko Profil |
#1 · Zasláno: 28. 11. 2013, 21:09:49
Pokud bych měl zavolat funkci bez argumentu, tak to udělám bez anonymní fce.
link.onclick = zvyrazni; Pokud s argumentem, tak jsem došel k níže napsanému řešení. Moje otázka zní, lze to udělat i jinak? Nikde jsem nenašel nic normálního ... (resp. viděl jsem řešení přes .setAttribute ale nejsem si jist jestli to bude fungovat v IE).
<div> <a href="">KUKU</a> </div> <script> var link = document.getElementsByTagName("a")[0]; function zvyrazni(neco) { this.parentNode.style.backgroundColor = "red"; alert(neco); } //link.onmouseover = zvyrazni; link.onmouseover = function(){ zvyrazni.call(this, 'argument'); }; </script> |
||
Chamurappi Profil |
#2 · Zasláno: 28. 11. 2013, 21:32:43
Reaguji na Kcka:
Lze mít funkci, která vrací funkci. function vyrobZvyrazneni(neco) { return function() { this.parentNode.style.backgroundColor = "red"; alert(neco); }; } link.onmouseover = vyrobZvyrazneni('argument'); „resp. viděl jsem řešení přes .setAttribute ale nejsem si jist jestli to bude fungovat v IE“
Jako že bys sestavoval tělo funkce jako řetězec a do něj bys vlepoval patřičně escapovaný argument? To by bylo docela hnusné, i kdyby to v Exploreru fungovalo. |
||
Kcko Profil |
#3 · Zasláno: 28. 11. 2013, 21:35:00
Chamurappi:
„Jako že bys sestavoval tělo funkce jako řetězec a do něj bys vlepoval patřičně escapovaný argument? To by bylo docela hnusné, i kdyby to v Exploreru fungovalo.“ Ano, tak jsem to viděl a tak jsem to také nechtěl používat, proto jsem se ptal na jiný způsob, krom mého řešení. Takže díky, tohle jsem neznal. |
||
Časová prodleva: 10 let
|
0