2011-12-04 5 views
1

現在、メニュー項目のキーボードショートカットとアクセスキーがあるjQueryのメニューを作成しています。function.call()またはclick()

私は、メニュー項目にバインドする機能をstoresdオブジェクトリテラルを使用して、メニューを構築するために、このような何かデータを渡す:私はメニューにfunc機能を結合してい

var my_menu = [ 
    { 
     label  : 'File', 
     accessKey : 'F', 
     func  : function() { alert('File shown'); } 
    } 
]; 

を私はその後、documentkeydown()のために聴くことによってキーボードのサポートを追加し

this_li.click(function() { this_click_func.call() }); 

:jQueryのclick()機能、のようなものを使用してアイテム(<li>要素)。キーの組み合わせがaccessKeyと一致する場合は、実際にはアイテムをクリックしていないにもかかわらず、jQueryでclick()メソッドを使用するだけでその関数を呼び出すことができます。

これはうまくいきますが、私はこの方法について意見を出したかったのです。キーの組み合わせも一致する場合は機能を実行する方が良いでしょうか、click()を使用してクリックを複製するだけで十分ですか?

感謝していただきましたコメント。

+1

「私はこれを何と考えましたか?」 *答えることはできません。 – millimoose

+0

これはJSONではありません。これはJavaScriptのオブジェクトリテラルです。それにかかわらず、これはおそらくhttp://s.tk/reviewのより良い質問です。 –

+0

http://codereview.stackexchange.com/ – rlemon

答えて

0

あなたはclick()ハンドラをトリガしてはならない、コンポーネントとして/プラグインもclick()イベントに加入している場合があります。

keydown()ハンドラでは、this_click_func.call()を再度呼び出す必要があります。

さらに、あなたが持っているものはObject Literal Notation, not JSONです。

関連する問題