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

时间:2010-09-15 13:27:47

标签: javascript jquery focus focusin

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

在Jquery 1.4之前,这曾经是将焦点调用到文本框的方法,现在它不起作用。当我点击按钮时,我想将焦点调到文本框,我的意思是“焦点”,就是我希望文本框的行为就像刚刚点击一样,这样用户就不必点击文本框了。

.focus应该自动点击我想要的文本框,为什么它现在不工作?它打破了Jquery 1.4。我只需要知道如何做到这一点。

3 个答案:

答案 0 :(得分:5)

它仍然有效。请参阅here

参考:jQuery focus docs

如前所述,在一个元素上调用'焦点'可能会触发另一个元素的'模糊' - 所以请改用'focusin'。

答案 1 :(得分:3)

您的代码works fine for me。但是,看起来您正在尝试为输入元素创建可单击标签。如果是这种情况,那么现有的一个名为<label>的元素将为您完成工作,无需JavaScript:

<label for="myTextBox">I'm a label, click me</label>
<input type="text" id="myTextBox" />

示例:http://jsfiddle.net/pkk6y/

答案 2 :(得分:2)

那些是类选择器而不是ID - 不确定它是否相关,但它们本身并不是唯一的 - 特别是在焦点函数中,jquery可能只是简单的拒绝 - 尝试使用ID(和#mybutton,#mytextbox)

更新:jQuery doc page指出了IE的问题:

  

焦点事件没有冒泡   IE浏览器。因此,脚本   依赖事件委托与   焦点事件不会始终如一   跨浏览器。