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.