Autor Zpráva
Kcko
Profil
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
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
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.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0