0

当输入聚焦时,我想用 jQuery 触发一个事件。应该足够简单。

根据这篇文章,一个简单$('#id').is(':focus')的内部 if 语句应该可以工作。但不适合我:http: //jsfiddle.net/PaulvdDool/BdG9N/

我也尝试过在.focus 这里使用,但这只会不断触发事件。我可以让它工作,但我认为这不是最好的方法。

有人可以给我看灯吗?

4

4 回答 4

2

使用如下:

$('#field').focus(function(){
    //do your stuff here
});
于 2013-07-25T08:45:02.897 回答
1

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

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

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

演示

于 2013-07-25T08:41:34.903 回答
1

最好的解决方案是使用以下方法绑定事件处理程序focus

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

这种方法的主要问题是警报会从输入中窃取焦点,然后当您单击输入以在框中键入时再次获得焦点。然后重复这个循环。我假设您的代码会做一些事情而不是引发警报,所以一旦实际代码到位,它就不会重复引发警报。

于 2013-07-25T08:43:13.037 回答
0

focus作为函数使用:

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

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

于 2013-07-25T08:41:11.347 回答