2012-01-17 62 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 2012-01-17 17:13:47

回答

1

只是我们focus事件的图像。我在图像中添加了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. 
    }); 
}); 
0

假设你的手柄上的回车键事件是这样的:

$("#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); 
}); 
+0

你可以使用'evt.which'。 jQuery使它跨浏览器兼容。 – 2012-01-17 17:26:46

0

这里有一个例子是什么您需要:

http://jsbin.com/upowip

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

+0

其实在我的例子中,你可以把任何东西放在“on”函数中来处理任何事情。您可以在img上处理keypress事件并检查输入密钥代码。 – 2012-01-17 17:29:31