.addEventListener и.attachEvent правильное использование

У меня есть форма с простым вычислением, и у меня есть .addEventListener который слушает submitsevents. И это отлично работает, пока я не узнал, что IE7 и IE8 не поддерживают это, но используют свой собственный .attachEvent, и мне нужно, чтобы это работало и в обоих браузерах.

Вы можете увидеть скрипку здесь http://jsfiddle.net/hbrovell/AGBnj/

Я нашел множество решений, в которых вы проверяете, использует ли браузер .addEventListener или .attachEvent но я не могу обернуть вокруг себя, как его использовать.

Например, как бы я начал правильно реализовывать эту часть кода?

function addEvent(element, eventName, callback) {
if (element.addEventListener) {
    element.addEventListener(eventName, callback, false);
} else if (element.attachEvent) {
    element.attachEvent("on" + eventName, callback);
}}

Элемент в этом коде, это элемент формы в моем коде? И eventName - это событие отправки?

Я не могу использовать какие-либо библиотеки в этом проекте, поэтому мне нужно использовать простой javascript.

Надеюсь, кто-то может дать мне некоторое представление о том, как это сделать.

0
источник поделиться
1 ответ
var el = document.getElementById("my-el"),
    action = function (e) { doStuff(); },
    eventName = "click";


// normal browsers
el.addEventListener(eventName, action);

// IE < 9
el.attachEvent("on" + eventName, action);

Зная это, вы должны уметь видеть, что делает addEvent.

Там очень большой, но там.
То, что IE дает вам обратно, очень отличается.
В то время как другие браузеры дают вам аргумент e event, IE этого не делает.
В то время как другие браузеры делают this элементом, который был нажат/введен, и т.д., IE этого не делает.

Этот addEvent ничего не делает.
Это 100% штраф, если вам просто нужно знать, что произошло событие.
Если вам нужно preventDefault или stopPropagation, или вам нужно получить информацию о событиях, то эта функция не будет достаточно хороша для ее обработки.

0
источник

Посмотрите другие вопросы по метке или Задайте вопрос