F.Ko-Jiの「一秒後は未来」ではウェブやSEO、API、RSSといった技術的ネタから、ちょっとした豆知識や梅酒、エンタメ系まで様々な情報を不定期にお届けしています。

F.Ko-Jiの「一秒後は未来」 > Javascript > Yahoo! UI Libraryでキーボードイベントを扱う方法

Yahoo! UI Libraryでキーボードイベントを扱う方法

  • B!

Yahoo! UI Library のリファレンスを見てもキーボードイベントを取り扱う方法がいまいち分かりにくかったので、以下に簡単なサンプルを掲載しておきます。少々理解できていない部分があるので必要最小限の情報です。

必要なライブラリ

イベントを扱うだけであれば、yahoo-min.jsとevent-min.jsをインクルードしておけばいいです。ライブラリはYahoo!がホスティングしてくれます。

<script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/yahoo/yahoo-min.js" ></script> 
<script type="text/javascript" src="http://yui.yahooapis.com/2.2.2/build/event/event-min.js" ></script>

YAHOO.util.KeyListner

Yahoo! UI Library でキーイベントを扱うには、YAHOO.util.KeyListnerを利用します。

var yKey = new YAHOO.util.KeyListener(document, {keys: [38, 40]}, {fn: handler});
yKey.enable();

引数は以下の通り。

  • 第1引数: イベントを割り当てるエレメント。DOMもしくはIDで与える。
  • 第2引数: イベント対象のキーコード。keysに配列でキーコードを与える。Shiftキー、Altキー、Ctrlキーを利用したいときは、 {keys: [...], shift: true, alt: true, ctrl: true} のようにbooleanで指定することができる。
  • 第3引数: コールバック関数。たいていのサンプルでは fn に関数オブジェクトを与えていた。詳細はのちほど。
  • 第4引数: keydown または keyup を任意で与える。指定しない場合は keydown

上の例にあるように、オブジェクトを生成したら enable() メソッドでキーイベントを有効にする必要がある。

コールバック関数

YAHOO.util.KeyListener の第3引数のコールバック関数についてです。

var handler = function(type, args, obj) {
    var keycode = args[0];
    // 38 ↑
    // 40 ↓
    if (keycode == 38) {
        exampleFunctionUp();
    }
    else if (keycode == 40) {
        exampleFunctionDown();
    }
}

調べてみると、コールバック関数の引数は3つ。上記の例の場合には、第1引数typeは keyPressed という文字列、第2引数argsは配列で最初の要素にキーコードが格納されています。第3引数はnullになっていました。

キーコードで処理を分岐させたいなら、上記のサンプルで事足りると思います。あとは詳しい人に聞いてください。

【関連エントリー】
- Yahoo! UI LibraryのGraded Browser Supportという考え方 - F.Ko-Jiの「一秒後は未来」 はてなブックマーク数
- Yahoo! UI Libraryでページ内スクロール - F.Ko-Jiの「一秒後は未来」 はてなブックマーク数
generated by 関連エントリーリストジェネレータ

[2010-01-12] RSS フィードの URL が変わりました。お手数ですが RSS リーダーへの再登録をお願いします。
Subscribe with livedoor Reader Add to Google Subscribe with Fastladder My Yahoo!に追加 Bloglinesで閲読登録 はてなRSSに追加 エキサイトリーダーに登録


コメントを投稿

(承認されるまでコメントは表示されません。)

Javascript / プログラミング

English version

前のエントリー: « COOLPIX S50cで利用できる3つのサービスについて
次のエントリー: 今年から4月29日は「昭和の日」、5月4日は「みどりの日」だった »

トラックバック

このエントリーのトラックバックURL:

タイトル:

URL:

リンク用HTMLタグ:

Agile Media Network

AMN Partner Blog

広告掲載について

東京ナイロンガールズ
最近の注目記事
持っているガジェット
powered by Gadget Party
最近のつぶやき
えもにゅ

↑ 気持ち記録サービス「えもにゅ」です

このブログの読者になる

F.Ko-Jiの「一秒後は未来」 - RSSフィード

クマでもわかるこのブログの便利な更新チェック方法

DailyFeed

あわせて読みたいブログパーツ

フィードメーター - F.Ko-Jiの「一秒後は未来」

月別アーカイブ


<< March 2010
SuMoTuWeThFrSa
 123456
78910111213
14151617181920
21222324252627
28293031 
人気エントリー
TopHatenar
携帯からのアクセスは
QRコード
http://mob.fkoji.com/