ОК, это интересно. Мой вариант использования состоит в том, что у меня есть серия ссылок (A
тегов) на экране в представлении WebKit. Чтобы проверить доступную область событий, используя jQuery 1.3.1, я прикрепил каждое событие, указанное на этой странице (даже те, которые не имеют смысла) к ссылкам, затем использовал элементы управления вверх, вниз и ввода на эмуляторе Android и отметил, какие события произошли при каких обстоятельствах.
Вот код, который я использовал для прикрепления событий, с результатами для подражания. Обратите внимание, что я использую «живое» связывание событий, потому что для моего приложения теги A
вставляются динамически.
$.each([
'blur',
'change',
'click',
'contextmenu',
'copy',
'cut',
'dblclick',
'error',
'focus',
'keydown',
'keypress',
'keyup',
'mousedown',
'mousemove',
'mouseout',
'mouseover',
'mouseup',
'mousewheel',
'paste',
'reset',
'resize',
'scroll',
'select',
'submit',
// W3C events
'DOMActivate',
'DOMAttrModified',
'DOMCharacterDataModified',
'DOMFocusIn',
'DOMFocusOut',
'DOMMouseScroll',
'DOMNodeInserted',
'DOMNodeRemoved',
'DOMSubtreeModified',
'textInput',
// Microsoft events
'activate',
'beforecopy',
'beforecut',
'beforepaste',
'deactivate',
'focusin',
'focusout',
'hashchange',
'mouseenter',
'mouseleave'
], function () {
$('a').live(this, function (evt) {
alert(evt.type);
});
});
Вот как это вытряхнуло:
При загрузке первой страницы, когда ничего не выделено (нет уродливого оранжевого поля выбора вокруг какого-либо элемента), с помощью кнопки «вниз» для выбора первого элемента запускаются следующие события (по порядку): mouseover
, mouseenter
mousemove
, DOMFocusIn
С выбранным элементом, переходом к следующему элементу с помощью кнопки «вниз» запускаются следующие события (по порядку): mouseout
, mouseover
, mousemove
, DOMFocusOut
, DOMFocusIn
При выбранном элементе, нажав кнопку «Ввод», запускаются следующие события (по порядку): mousemove
, mousedown
, DOMFocusOut
, mouseup
, click
, DOMActivate
Это выглядит как куча случайного мусора. И кто это дерзкое событие только для IE (mouseenter
), которое снимает камею, а затем снимает остаток дня? Ну что ж, по крайней мере, теперь я знаю, какие события ожидать.
Было бы замечательно, если бы другие захотели взять мой тестовый код и выполнить более тщательный анализ, возможно, используя элементы формы, изображения и т. Д.