2012-01-17 10 views
0

私はdiv要素を持っていますが、入力フィールドとそれ以外のイメージを動的に生成しています。入力フィールドをクリックしてからTabキーを押すと、画像がフォーカスを取得します。jquery - イメージがフォーカスを取得したときにクリックイベントをトリガーする

画像にフォーカスがあるとき私は

をやってみたいことは、私が入力したキーイベントをトリガします。画像上の

HTML

<div id="myDiv"></div> 

jQueryの

$(document).ready(function(){ 
    $("div#myDiv").html("<input type='text' tabindex='1'></input><a><img src='icon.gif' tabindex='2'></img></a>"); 
}); 
+0

他のハンドラを呼び出すためのキーイベントをトリガしていますか?もしそうなら、ハンドラコードを関数に入れて、両方から呼び出すのはどうですか? – StuperUser

答えて

1

ちょうど私達focusイベント。画像にfocustriggerクラスを追加しました。このコードはすべてのimg要素に適用されません。

$("#myDiv input").keypress(function(evt) { 
    var code = evt.keyCode ? evt.keyCode : evt.which; 
    if (code == 13) alert("OK"); 
}); 

画像がフォーカスを取得したときにあなたがそれをトリガーするためにこれを使用することができます:[次のようにキーイベントを入力して、あなたのハンドルを仮定し

$(document).ready(function(){ 
    $("div#myDiv").html("<input type='text' tabindex='1'></input><a><img src='icon.gif' class='focustrigger' tabindex='2'></img></a>"); 

    $('.focustrigger').focus(function() { 
     // Trigger your "enter key event" here. 
    }); 
}); 
0

$("#myDiv img").focus(function() { 
    var evt = jQuery.Event('keypress'); 
    evt.keyCode = 13; 
    $("#myDiv input").trigger(evt); 
}); 
+0

あなたは単に 'evt.which'を使うことができます。 jQueryはクロスブラウザーと互換性があります。 –

0

は、ここでは何の例ですあなたは必要があります:

http://jsbin.com/upowip

右上に、またはソースを表示するための編集リンクがあります。

+0

実際、私の例では、 "on"関数の中に何でも置くことができます。 imgのkeypressイベントを処理し、Enterキーコードを確認することができます。 –