Инкапсулируйте обработчик событий DOM уровня 0 и обработчик событий DOM2 IE, обработливый событие, в объекты EventUtil для достижения эффекта поперечного браузера. Код заключается в следующем:
var EventUtil = {// Добавить ручку события addEventhandler: function (element, type, handler) {if (element.addeventlistener) {element.addeventlister (type, handler, false);} else if (element.attachevent) {element.attachevent ("on"+type, handler);} else {element/ in on "+handler; removeEventhandler: function (element, type, handler) {if (element.removeeventlistener) {element.removeeventListener (type, handler, false);} else if (element.detachevent) {element.detachevent ("on" type, handler);} else {int "on" on "] = null; {return Event? Event: window.event;}, // Получить тип события getType: function (event) {return event.type;}, // Получить целевой объект события getTarget: function (event) {if (event.target) {return Event.target;} else use event.srcement; (event.target) {return event.target;} else {return event.srcelement;}}, // Получить целевую цель события getTarget: function (event) {if (event.target) {return event.target;} else {return event.srcelement;}}, // stop Event stoppropagation: function (event. event. event. {event.stoppropagation ();} else {event.cancelbubble = true;}}, // предотвратить поведение по умолчанию.Практикуя код, я допустил несколько ошибок, что вызвало ошибку работы. Запишите это и углубите мою память.
① Добавление ручки - это местоположение, где параметр запутывается: во -первых, параметры Addeventhandler (элемент, тип, обработчик), соответственно, представляющий, какой элемент элемент добавляется в событие, тип события и обработчик функций обработки событий. Вы склонны путать позиции обработчика и неверно (представляя стадию пузырьков) в более позднем addeventlister (тип, обработчик, false).
В результате результата: в процессе написания я внимательно думал об этом и понял, какие параметры необходимы Addeventhandler, а затем я знал, какой параметр использовать, в какой позиции. Наконец, я написал это правильно и не вызвал ошибки.
Решение: понимать и помнить.
② В отделении суждения IE Event Gancerler, AttactEvent и DepachEvent написаны неправильно, а событие отсутствует, и только прикрепление или отделение написано.
Получите результат: хотя ошибок нет, невозможно добавить или удалить события в IE, используя Addeventhandler и RemoveEventhandler.
Решение: просто потренируйтесь больше и запомните это. AttactEvent и DepachEvent.
③ Забыл добавить «на» в параметры обработчика IE ATCATEREVENT и DETACHEVENT; Он написан как AttactEvent (тип, обработчик). На самом деле, правильным должен быть AttachEvent ("ON"+Type, Handler), и я также забыл, что существует ветвь суждения для обработки событий DOM0.
Причины результаты: аналогично, то есть обработка событий не совместима. Добавление или удаление событий с использованием инкапсулированных методов в IE не может добиться успеха.
Решение: только помните. Еще одна вещь, чтобы отметить: элемент ["on"+тип] используется в событиях уровня DOM0. Например, элемент ["on"+"chick"] эквивалентен element.onclick.
④ Последний атрибут также добавляется с запятой в конце, такой как поведение предотвращения по умолчанию при блокировании события: добавьте запятую после завершения, например, следующий фрагмент кода (комментарий)
Предотвратить: function (event) {if (event.preventdefault) {event.preventDefault ();} else {event.returnValue = false;}}, // Последнее свойство предотвращение.Причины результат: при запуске в IE сообщалось об ошибке (где строка 54 Event.js является следующей строкой последней запятой, которая фактически вызвана запятой; строка 10 test.html называется из -за метода Eventutil.Addeventhandler в Event.js) называется).
Решение: без сомнения, просто удалите последнюю запятую.
⑤ Это все еще ошибка орфографии. Собственность CancelBubble в IE, которая предотвращает пузырьковые события, было написано еще одним S, который написан как CancellBubbles.
Результат: никакой ошибки не сообщалось, но события в IE не могут быть предотвращены пузырьками.
Решение: изменить его обратно
Выше приведено проблема с ошибкой низкого уровня, которую JavaScript инкапсулирует обработчик событий DOM в Event.js, введенный редактором. Я надеюсь, что это будет полезно для всех. Если у вас есть какие -либо вопросы, пожалуйста, оставьте мне сообщение, и редактор ответит всем вовремя. Большое спасибо за вашу поддержку сайту wulin.com!