2012-05-08 3 views
0

Je suis en train de créer une checkbox dynamique et d'attacher un événement onclick avec ça. Voici le code:Checkbox onclick ne fonctionne pas dans IE8 mais fonctionne dans IE9

var table = document.getElementById(tableID); 
var rowCount = table.rows.length; 
var row = table.insertRow(rowCount); 

var cell1 = row.insertCell(0); 
var checkbox = document.createElement("input"); 
checkbox.type = 'checkbox'; 
checkbox.onclick = testClick(); 
cell1.appendChild(checkbox); 

function testClick() { 
      alert("Hello"); 
} 

Le morceau de code ci-dessus fonctionne bien avec IE9 mais pas avec IE8. J'utilise Jquery 1.7.1.

Toute aide sera grandement appréciée. Merci ..

Répondre

3

Si vous utilisez jQuery, pourquoi ne pas l'utiliser? Qui prend en charge des questions croix navigateur

$(domElement).click(function(){ 
    // do your thing here 
}); 
+0

jQuery ne s'occupe pas des erreurs de syntaxe ... liant clairement la valeur de retour d'une fonction comme fonction de rappel pas le chemin à parcourir –

+0

@EliasVanOotegem Envelopper l'appel de fonction dans une fonction anonyme prendra soin de cela, cependant. –

+0

C'est vrai, mais c'est un peu exagéré, n'est-ce pas? créer un rappel anonyme parce que cela appelle simplement une fonction plutôt que de défier le point de rappel, dans mon esprit: P –

3

Vous devez passer gestionnaire de fonctions, la fonction ne pas appel à onclick attribut:

checkbox.onclick = testClick; 
+0

Merci, cela fonctionne (signifie que je ne reçois pas d'erreur dans IE8 maintenant), mais dans la méthode testClick je une alerte qui vient bien dans IE9 mais pas dans IE8 . –

+0

J'ai créé la démo de jsFiddle pour vous http://jsfiddle.net/5yq6X/ essayez ceci dans IE8 – antyrat

Questions connexes