Autor Zpráva
odckuler
Profil
<body onload="nacitat()">
<div id="buttons"></div>
</body>


<script>
var id=55;
var a = Array();
a["Zmazat"] = "delet('"+id+"')";
a["Poslat"] = "send('"+id+"')";

function nacitat(){
  for(var key in a){
    var butt = document.createElement("a");
    butt.setAttribute("href","/button/");

    butt.setAttribute("onclick",a[key]+";return false");
    butt.onclick = function(){a[key];return false}

    butt.innerHTML=key+" ";
    document.getElementById("buttons").appendChild(butt);
  }
}

function delet(id){
  alert("zmazat: "+id);
}

function send(id){
  alert("odoslat: "+id);
}
</script>


Ahojte... pls poradte mi.
snažim sa vložiť attribut onclick.. tymto sposobom sa vloží:

function(){a[key];return false}


lenže ja chcem aby mi to vložilo send(55) čiže nie premennu...

Vopred dakujem
_es
Profil
odckuler:
Ahojte... pls poradte mi.
Čo si to tak pre odoslaním najprv po sebe prečítať a zamyslieť sa nad tým, či sa dá z toho pochopiť, na čo sa vlastne pýtaš?
odckuler
Profil
_es:

tak skusim upresniť...
mam polia a["Zmazat"] a a["Poslat"]

Pomocou cyklu chcem vytvoriť 2 odkazy s udalosťou onclick. (butt.onclick = function(){a[key];return false})

ale ked v chrome preskumam prvky tak to vloži: onclick = "function(){a[key];return false}"
lenže ja by som chcel aby to vložilo: onclick = "function(){delet(55);return false}"
_es
Profil
odckuler:
Nepoužívaj setAttribute, pokiaľ nemusíš.
Pokiaľ som správne pochopil, o čo sa snažíš, tak si môžeš vytvoriť element s ľubovolným id a to neskôr jednoducho prečítať:
function akeId(){alert(this.id);};
element.onclick = akeId;
odckuler
Profil
Ide o to že ak je tam cyklus:

  for(var key in a){
    var butt = document.createElement("a");
    butt.setAttribute("href","/button/");

    butt.setAttribute("onclick",a[key]+";return false");
    butt.onclick = function(){a[key];return false}

    butt.innerHTML=key+" ";
    document.getElementById("buttons").appendChild(butt);
  }


a použivam
butt.onclick = function(){a[key];return false}

čo musim ak chcem aby to fungovalo aj v IE6 tak obe tlačitka budu mať rovnake "a[key]" ked že je to premenna a ked je to v cykle tak to bude posledna hodnota key v poli čiže "Poslat"... tak že obe budu volavať funkciu "send('"+id+"')"...
_es
Profil
odckuler:
Možno ti pomôže toto.
Ignoruješ rady ([#4]), vytváraš zbytočne funkcie v cykle, stačí ti jedna, či dve, skús sa zamyslieť na priradením do onclick ako v tom príspevku.

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