33

Android ユーザーを対象としたモバイル Web アプリを構築しています。どの DOM イベントを利用できるかを知る必要があります。私は次の作業を行うことができましたが、それほど確実ではありません:

  • クリック
  • マウスオーバー
  • マウスダウン
  • マウスアップ
  • 変化する

以下を機能させることができませんでした:

  • キープレス
  • キーダウン
  • キーアップ

何がサポートされているか、どのコンテキストでサポートされているかの完全なリストを知っている人はいますか? The Googles でこれに関するリファレンスが見つかりません。

ありがとう!

更新: Android デベロッパー リストで同じ質問をしました。さらにテストを行い、結果をあちこちに投稿します。

4

3 に答える 3

23

わかりました、これは興味深いです。私の使用例は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);
    });
});

それがどのように揺れたかは次のとおりです。

  • 何も強調表示されていない (項目の周りに醜いオレンジ色の選択ボックスがない) 最初のページの読み込みで、下ボタンを使用して最初の項目を選択すると、次のイベントが (順番に) 発生しました: mouseovermouseentermousemoveDOMFocusIn

  • 項目を選択し、下ボタンを使用して次の項目に移動すると、次のイベントが (順番に) 発生しました: mouseoutmouseovermousemoveDOMFocusOutDOMFocusIn

  • 項目を選択して「Enter」ボタンをクリックすると、次のイベントが (順番に) 発生しました: mousemovemousedownDOMFocusOutmouseupclickDOMActivate

これは、ランダムなゴミの束のように私を襲います。そして、その生意気な IE のみのイベント ( mouseenter) にカメオ出演し、残りの 1 日を休んでいるのは誰ですか? ああ、少なくともこれで、どのイベントを監視すべきかがわかりました。

他の人が私のテスト コードを取得して、おそらくフォーム要素や画像などを使用して、より徹底的に実行したいと思うなら、それは素晴らしいことです.

于 2009-01-24T21:51:28.940 に答える