2011-05-27 2 views
7

J'ai créé un élément label. Je dois ajouter onclick événement que ...comment ajouter un événement onclick pour créer un nouvel élément en javascript

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> 

en fait ce qui se passe est quand je clique sur le tout de trois étiquettes en html. une autre étiquette est créée et affiche bienvenue. maintenant quand je clique sur le label nouvellement créé "bienvenue" il n'affiche rien ... c'est l'événement onclick ajouté au label nouvellement créé ne fonctionne pas ....... toute suggestion ...... ...........

+2

Vous utilisez le même ID sur deux éléments. N'utilisez qu'un identifiant une seule fois. – Kayla

+0

@tylermwashbum en utilisant id une fois .......... – thuk

+0

Il y a deux étiquettes avec l'ID '1'. BTW, vous ne devriez pas utiliser les ID commençant par un nombre. – kapa

Répondre

17

Vous devez définir d.onclick=function(){a(1);};, notez que le cas compte ici (non "onclick").

[Modifier]

Sur la base de vos commentaires et questions mises à jour que j'ai créé un jsFiddle to demonstrate comment vous pouvez transformer votre code en quelque chose qui fonctionne.

+1

Qu'est-ce qui, spécifiquement, ne fonctionne pas après avoir tenté cette correction? – DavidJCobb

+0

quand je clique sur cette étiquette après avoir ajouté cette propriété. il n'appelle pas la fonction ... – thuk

+0

@maerics. l'événement onclick ne fonctionne toujours pas. Quel peut être le problème...?? – thuk

6
d.setAttribute('onclick', 'alert(\'hello\');'); 
0

Pour créer un attribut à une balise HTML, nous avons parfois ajouter ceci:

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

Mais il y a des attributs spéciaux, et les ont les moyens diferents pour l'édition:

yourTag.classList 
yourTag.className 

Et est l'attribut onclick, wichwe peut l'utiliser comme ceci:

// 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`)') 

Je vous recommande le mode d'écoute d'événement, mais essayez tous: D

Questions connexes