2009-06-13 6 views
4

Je crée un div vide dans le DOM javascript. mais quand j'appelle une fonction dessus, par exemple,div vide n'est pas reconnu en javascript

var hover = document.createElement("div"); 
    hover.className = "hover"; 
    overlay.appendChild(hover); 
    hover.onClick = alert("hi"); 

la fonction onClick ne fonctionne pas. Au lieu de cela, il affiche une alerte dès qu'il atteint la partie de création div du script. Qu'est-ce que je fais mal?

Répondre

4

Essayez addEventHandler & attachEvent joindre l'événement à un élément:

if (hover.addEventListener) 
{ 
    // addEventHandler Sample : 
    hover.addEventListener('click',function() { 
     alert("hi"); 
    },false); 
} 
else if (hover.attachEvent) 
{ 
    // attachEvent sample : 
    hover.attachEvent('onclick',function() { 
     alert("hi"); 
    }); 
} 
else 
{ 
    hover.onclick = function() { alert("hi"); }; 
} 
+0

génial. cela a fonctionné. – amit

+1

Cela ne fonctionnera que dans les navigateurs compatibles avec le modèle d'événement W3C. Pour IE, vous devrez utiliser attachEvent .. – James

+0

Merci J-P, j'ai mis à jour ma réponse. – Canavar

2

Vous devez mettre le onclick dans une fonction, quelque chose comme ceci:

hover.onclick = function() { 
    alert('hi!'); 
} 
+0

cela a résolu le problème quelque peu. mais maintenant l'alerte ne s'affiche même pas en cliquant sur la zone de stationnaire. pour être plus informatif, le vol stationnaire est un div vide. et la définition de classe css: .hover { \t largeur: 320px; \t hauteur: 75px; \t position: absolue; \t gauche: 28%; \t en haut: 32%; \t z-index: 9999; \t couleur de fond: # 000; \t dépassement: masqué; } – amit

0

Le nom de la propriété est "onclick" non " sur clic". JavaScript est sensible à la casse.

Il prend également une fonction. La valeur de retour de alert (someString) n'est pas une fonction.

Questions connexes