7 Stimmen

wie man onclick-Ereignis hinzufügen, um ein neues Element in Javascript erstellen

Ich habe eine label Element. Ich muss Folgendes hinzufügen onclick Ereignis dazu...

function a(me) {
    var d=document.createElement("label");
    d.id=me.id;
    d.onClick="a(10)";
    d.innerHTML="welcome";
    document.body.appendChild(d);
}

HTML:

<label id="1" onclick="a(this)">aa</label>
<label id="2" onclick="a(this)">bb</label>
<label id="3" onclick="a(this)">aa</label>

Eigentlich, was passiert, ist, wenn ich die drei Etiketten in html klicken. ein weiteres Etikett wird erstellt und zeigt willkommen. jetzt, wenn ich das neu erstellte Etikett "Willkommen" klicken, es zeigt nichts......, die das Onclick-Ereignis hinzugefügt, um neu erstellte Etikett ist nicht funktioniert ....... jeder Vorschlag.................

18voto

maerics Punkte 141984

Sie müssen Folgendes einstellen d.onclick=function(){a(1);}; Beachten Sie, dass es hier auf den Fall ankommt (nicht auf "onClick").

[Bearbeiten]

Auf der Grundlage Ihrer Kommentare und aktualisierten Fragen habe ich eine jsFiddle zur Demonstration wie Sie Ihren Code in etwas verwandeln können, das funktioniert.

6voto

Senad Meškin Punkte 13317
d.setAttribute('onclick', 'alert(\'hello\');');

0voto

Um ein Attribut zu einem HTML-Tag zu erstellen, müssen wir manchmal dies hinzufügen:

yourTag.src
yourTag.src = 'http://lolxd.com/404.png'

Aber es gibt spezielle Attribute, und sie haben verschiedene Möglichkeiten zur Bearbeitung:

yourTag.classList
yourTag.className

Und es gibt die onclick Attribut, das wir wie folgt verwenden können:

// The first way
obj.onclick = function () { alert('lalala') }
// With the Event Listener
obj.addEventListener('click', function () { alert('lalala') }, false)
// Or, a text-render way
obj.setAttribute('onclick', 'alert(`lalala`)')

Ich empfehle Ihnen den Event Listener Weg, aber versuchen Sie alle :D

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X