Событие не определено в FireFox, но нормально в Chrome и IE
Я создаю HTML, используя jQuery:
$("<a />")
.append("demo")
.click(function () { DemoFunc(event, value.Id) })
Это отлично подходит для Chrome и IE8, но в FireFox я получил ошибку: "событие не определено".
Я изменил код следующим образом:
.attr("onclick", "DemoFunc(event, " + value.Id + ")")
Он работает для Firefox, но не для Chrome и IE.
DemoFunc = function (e, assocGroupId) {
var target = (e.target) ? $(e.target) : $(e.srcElement);
....
}
Почему!? Помогите!!
Ответы
Ответ 1
В IE и Chrome event
разрешается window.event
. Firefox не имеет этого свойства и вместо этого предоставляет событие функции обработчика событий, передавая его как параметр. jQuery абстрагирует эту разницу для вас, предоставляя параметр объекта события во всех браузерах:
$("<a />")
.append("demo")
.click(function (evt) { DemoFunc(evt, value.Id) });
Ответ 2
Если вы структурировали свой код для работы с исходным событием, а не с событием jQuery, вы можете использовать evt.originalEvent
для обозначения собственного события.