Хорошо, это интересно. Мой вариант использования заключается в том, что у меня есть серия ссылок (теги 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
), которое снялось в эпизодической роли, а затем взяло выходной на остаток дня? Ну, по крайней мере, теперь я знаю, за какими событиями нужно следить.
Было бы здорово, если бы другие захотели взять мой тестовый код и выполнить его более тщательно, возможно, используя элементы формы, изображения и т. д.
person
Andrew Hedges
schedule
24.01.2009