jquery-在图像获得焦点时触发单击事件

jquery-在图像获得焦点时触发单击事件,jquery,Jquery,我有一个div元素,动态生成一个输入字段和一个图像。当我单击输入字段,然后使用tab键时,图像获得焦点 我想做什么 当图像有焦点时,我想触发一个回车键事件 HTML <div id="myDiv"></div> JQuery $(document).ready(function(){ $("div#myDiv").html("<input type='text' tabindex='1'></input><a><i

我有一个
div
元素,动态生成一个输入字段和一个图像。当我单击输入字段,然后使用tab键时,图像获得焦点

我想做什么

当图像有焦点时,我想触发一个回车键事件

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>");
});
$(文档).ready(函数(){
$(“div#myDiv”).html(“”);
});

只需将
事件聚焦在图像上即可。我在图像中添加了一个
focustrigger
类,这样该代码就不会应用于所有
img
元素

$(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.
     });
});
$(文档).ready(函数(){
$(“div#myDiv”).html(“”);
$('.focustrigger').focus(函数(){
//在此处触发“输入密钥事件”。
});
});

假设您像这样处理enter键事件:

$("#myDiv input").keypress( function(evt) {
    var code = evt.keyCode ? evt.keyCode : evt.which;
    if ( code == 13 ) alert( "OK" );
} );
当图像获得焦点时,您可以使用此选项触发它:

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

以下是您需要的示例:


右上角有一个编辑链接,或者只是查看源代码。

是否触发一个键事件来调用另一个处理程序?如果是这样,为什么不将处理程序代码放入一个函数中并从两者调用它呢?您可以使用
evt.which
。jQuery使其跨浏览器兼容。实际上,在我的示例中,您可以在“on”函数中放入任何内容来处理任何内容。您可以在img上处理按键事件并检查输入键代码。