2010-07-07 5 views
0

J'essaie de définir un événement en JavaScript mais cela ne fonctionne pas vraiment. Je suis sûr que je le fais aussi correctement.Définition d'un événement avec DOM javascript

// in index.htm: 
function foo() { 
    // Load gets code from a php file via ajax 
    document.getElementById('div').innerHTML = load('phppage.php'); 
    document.getElementById('element').onClick = func; 
} 

// in lib.js: 
function func() { alert('Working'); } 

Malheureusement ... il alerte jamais 'de travail'. J'ai Google Chrome et j'ai même inspecté l'élément dans les outils de développement et a constaté que la propriété onClick était en fait func() ... Je ne comprends pas pourquoi cela ne fonctionnera pas.

J'ai un usage intensif d'ajax. L'élément « élément » est en fait chargé avec ajax

Répondre

4

Essayez de changer à « onclick »

+0

Les noms de fonction javascript sont sensibles à la casse, donc +1 pour vous! –

+0

Merci! cela a fonctionné. – Alan

+0

@Mike ce n'est pas sur les noms de fonctions, voir ma réponse ... – galambalazs

0

Je pense que la propriété onclick est en minuscule. Toutefois, vous devez utiliser des méthodes de fixation d'événement.

element.addEventListener('click',func); 

(et attachEvent pour Internet Explorer)

-2

Bien sûr, il y a beaucoup de cadres là-bas pour traiter les questions transversales de navigateur pour ce faire, tels que:

ExtJS

JQuery

+1

comme changer un personnage? Oh, je suis sûr qu'il y en a beaucoup. Ça n'a rien à voir avec les navigateurs. La sensibilité à la casse fait partie du langage. – galambalazs

+0

De quoi parlez-vous? Tout le monde sait que l'utilisation de gestionnaires en ligne est une mauvaise pratique (http://robertnyman.com/2008/11/20/why-inline-css-and-javascript-code-is-such-a-bad-thing/) Heck , vous préconisez même la même chose: http://stackoverflow.com/questions/3142710/inline-styles-vs-classes/3142741#3142741 Les cadres résument les différences dans les modèles d'événement, par exemple un événement partagé/singleton objet ou la différence entre addEventListener et attachEvent. Il semble que vous ayez quelque chose coincé dans votre derrière;) –

1

Attributs HTMLne sont pas, mais propriétés javascriptsontsensible à la casse. Vous devez utiliser onclick pour définir le gestionnaire d'événements.