Модульная библиотека событий JavaScript - PullRequest
5 голосов
/ 01 декабря 2011

Я хочу маленькую библиотеку, которая делает события DOM4 . В противном случае подойдет разумное подмножество событий DOM3 .

Существует ли?

Неправильные ответы

  • Использовать большой каркас X (jQuery, mootools, прототип и т. Д.)
  • Некоторая библиотека, которая не работает в IE8
  • Библиотеки, которые не допускают как фазы захвата, так и пузырьков.

Нужно работать только в IE8

1 Ответ

2 голосов
/ 01 декабря 2011

С достаточной уверенностью могу сказать, что ответ нет . Был разговор библиотеки под названием DOMe для событий уровня 3, но я не думаю, что это когда-либо сдвинулось с мертвой точки.

Есть несколько причин, по которым такая библиотека будет трудной:

  • IE 8 даже не слышал о захвате событий (хотя изначально это была идея Microsoft).
  • Мутации практически невозможно отразить.
  • KeyboardEvent было бы кошмаром, чтобы получить право из-за Key Values ​​, я не уверен, что даже выполнимо попытаться это сделать. Это связано с тем, что keyCode может различаться для разных языков ввода.

Учитывая все это, маленькая библиотека начинает звучать слишком оптимистично. Чтобы обойти первую проблему, вам нужно реализовать всю модель событий, привязав обработчик к исходному событию, которое выдает пузыри и псевдо-реферирует событие на обработчиках, прикрепленных с помощью методов shimmed, начиная с документа и прокладывая путь исходное событие srcElement / target и обратно.

Самое простое решение - это, вероятно, еще одна причина, по которой шим не существует, большинство людей просто по возможности шимят события, которые им нужны, и стараются избежать необходимости их захвата.

...