jQuery:当我点击一个div时,将焦点放在文本框上

3
$('.my-button').click(function() {
    $(".my-textbox").focus()
});

在Jquery 1.4之前,这是调用文本框焦点的方法,但现在已经不起作用了。当我点击按钮时,我想让文本框获得焦点,所谓“焦点”是指我希望文本框表现得像刚刚被点击一样,这样用户就不必再次点击文本框。.focus应该自动点击我想要的文本框,为什么现在不起作用了?它在Jquery 1.4中出现了问题。我只需要知道如何解决它。

你的代码在1.4.2版本中对我来说运行良好 - http://jsfiddle.net/DpQkG/ - Andy E
focus()是一种常规的JavaScript方法。您确定代码没有错误吗?无论jQuery版本如何,focus()始终起作用。 - Christopher Tokar
3个回答

5

它仍然有效。请查看这里

参考:jQuery焦点文档

如上所述,调用一个元素的'focus'可能会触发另一个元素的'blur'事件,因此使用'focusin'。


3
你的代码对我来说工作得很好。然而,看起来你正在尝试为一个输入元素创建可点击的标签。如果是这样的话,已经存在一个名为<label>的元素可以为你完成这项工作,无需使用JavaScript:
<label for="myTextBox">I'm a label, click me</label>
<input type="text" id="myTextBox" />

Example: http://jsfiddle.net/pkk6y/


2
这些是类选择器而不是ID - 不确定是否相关,但它们本质上不是唯一的 - 特别是在焦点函数中,jQuery可能会拒绝 - 尝试使用ID(例如 #mybutton,#mytextbox)。
更新:jQuery doc page 指出IE存在问题:

在Internet Explorer中,焦点事件不会冒泡。因此,依赖焦点事件的事件委托脚本将无法在各个浏览器中稳定工作。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接