L'événement n'est pas défini dans FireFox, mais ok dans Chrome et IE

Je génère du HTML en utilisant jQuery:

$("<a />") .append("demo") .click(function () { DemoFunc(event, value.Id) }) 

Cela fonctionne parfaitement pour Chrome et IE8, mais dans FireFox j'ai eu une erreur: "l'événement n'est pas défini". J'ai changé le code comme ceci:

 .attr("onclick", "DemoFunc(event, " + value.Id + ")") 

Cela fonctionne pour Firefox, mais pas pour Chrome et IE.

 DemoFunc = function (e, assocGroupId) { var target = (e.target) ? $(e.target) : $(e.srcElement); .... } 

Pourquoi!? Aidez-moi!!

Dans IE et Chrome, l' event se window.event à window.event . Firefox n'a pas cette propriété et fournit un événement à une fonction de gestionnaire d'événements en la passant comme paramètre. JQuery résume cette différence en fournissant un paramètre d'objet d'événement dans tous les navigateurs:

 $("<a />") .append("demo") .click(function (evt) { DemoFunc(evt, value.Id) }); 

Si vous avez structuré votre code en fonction de l'événement d'origine plutôt que de l'événement jQuery, vous pouvez utiliser evt.originalEvent pour vous référer à l'événement natif.