2010-12-16 9 views
0

Ich bin creatind 20 dynamische div, beim Laden der Seite Onclick-Ereignis zu jedem div, um seine ID zu melden, aber Problem ist beim Klicken auf ein div nur letzte div-ID ist alerteed PLZ Hilfe.JavaScript Hilfe erforderlich, um die dynamischen Werte von onclick

Zum Beispiel beim Klicken auf Fist Div alarmiert letzte Div-ID.

Erforderliches Ergebnis ist onclick auf einem Div sollte seine eigene ID warnen.

Der vollständige Code ist unten angegeben.

Vielen Dank im Voraus.

<html> 
<head> 
<script> 
function __createElement(tag, cls, id, name) 
{ 
var ele; 
ele = document.createElement(tag); 
if(cls!="" && cls!=undefined) 
    ele.className = cls; 
if(id != "" && id!=undefined) 
    ele.id = id; 
if(name!= "" && name!=undefined) 
    ele.name = name; 
return ele; 
} 
function test() 
{ 
for(var i = 0;i<20;i++) 
{ 
    var div = __createElement("div" ,"test" ,i+"test"); 
    document.getElementById("cont").appendChild(div); 
    div.innerHTML = "Content"+i; 
    div.onclick = function() 
    { 
    alert(i+"test"); 
    } 
} 
} 
setTimeout("test()",1000); 
</script> 
</head> 
<body> 
<div id=cont > 
</div> 
</body> 
</html> 

Antwort

2

dies eine variable Verschluss Ausgabe dieses statt:

div.onclick = function (num) 
    { 
    return function(){ 
     alert(num+"test"); 
    }; 
    }(i); 
+0

Dank .. es funktioniert ... Ich fand auch eine Lösung div.onclick = function() \t \t { \t \t \t alert (this.id); \t \t} – druveen

+0

Danke danke ... du hast meinen Tag gerettet .......... – druveen

+0

@druveen yourwelcome. –

0

Ich stieß einmal auf dieses Problem. Denken Sie daran: Der Wert von i ist jetzt 20 über den gesamten Umfang der test()-Funktion. Aber der Wert innerHTML jedes Divs ist jetzt so eingestellt, wie Sie es erwarten würden. Verwenden Sie stattdessen den Wert innerHTML.

+0

Aber ich benötigen die ID des angeklickt div ist es möglich, es zu bekommen .... – druveen

+0

@druveen: Referenzierung 'id' wie gesagt, Sie in Ihr Kommentar zu The Scrum Meisters Antwort würde es tun. "alert (i)" gibt den aktuellen Wert von "i" an, der am Ende der "for" -Schleife "20" ist. Aber die Elementattribute sind, solange sie keine Anon-Funktion sind, bereits fest eingestellt. –

Verwandte Themen