输入:焦点不起作用

时间:2013-07-25 08:39:11

标签: jquery html input focus

我希望在输入聚焦时使用jQuery触发事件。应该够简单。

根据this文章,if语句中的简单$('#id').is(':focus')应该有效。但不适合我:http://jsfiddle.net/PaulvdDool/BdG9N/

我还尝试使用.focus here,但这只是不断触发事件。我可以使它工作,但我认为这不是最好的方法。

有人能告诉我光明吗?

4 个答案:

答案 0 :(得分:2)

使用如下:

$('#field').focus(function(){
    //do your stuff here
});

答案 1 :(得分:1)

使用onfocus处理程序:{你当然可以使用别名'.focus()'只要知道一些自定义的jquery构建删除别名事件}

$('#field').on('focus',function(){
    alert('Hello world!');
});

但是不要在焦点处理程序中使用alert(),而是使用console.log()。 Alert()会在某些浏览器上创建一个循环。

DEMO

答案 2 :(得分:1)

最佳解决方案是使用focus绑定事件处理程序,例如:

$("#field").focus(function(){
   //function body.
});

此方法的主要问题是警报从输入中窃取焦点,然后当您单击输入以在框中键入时,该输入再次获得焦点。然后重复这个循环。我假设您的代码除了抛出警报之外还会执行其他操作,因此一旦实际代码到位,它就不会重复抛出警报。

答案 3 :(得分:0)

使用focus作为功能:

$('#field').focus(function(){
    alert('Hello world!');
});

如果您使用$(this).blur();,请不要忘记添加alert,因为在这种情况下,您会收到无限警报。