Подтвердить что ты не робот

Событие не определено в 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);
    ....
}

Почему!? Помогите!!

4b9b3361

Ответ 1

В IE и Chrome event разрешается window.event. Firefox не имеет этого свойства и вместо этого предоставляет событие функции обработчика событий, передавая его как параметр. jQuery абстрагирует эту разницу для вас, предоставляя параметр объекта события во всех браузерах:

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

Ответ 2

Если вы структурировали свой код для работы с исходным событием, а не с событием jQuery, вы можете использовать evt.originalEvent для обозначения собственного события.