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