2013-07-25 40 views
0

我想在输入焦点时用jQuery触发事件。应该很简单。输入:焦点不工作

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

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

有人能给我看光吗?

+0

将其更改为上: 如果($( '#字段')对( '专注')){ 警报( '你好!世界'); } – mtt

回答

1

最好的解决方法是结合使用的事件处理程序focus如:

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

用此方法的主要问题是,警报窃取从输入,然后接收到焦点当您点击输入键入框时,再次对焦。这个循环然后重复。我假设你的代码会做一些事情,而不是抛出警报,所以一旦实际的代码就位,它不会重复抛出警报。

+0

@PaulvdDool以及为什么不至少提供所有其他正确答案? –

+0

@Kevin Bowersox几乎所有其他答案都表明我已经尝试过的解决方案(就像我在帖子中说的)。这是您的答案带来了解决方案的额外评论。 –

0

使用focus作为一个功能:

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

不要忘记添加$(this).blur();如果你将与alert工作,因为在这种情况下,你有无限的警报。

1

使用的onfocus处理程序:{你可以使用别名当然“.focus()”只是知道一些定制的jQuery构建删除别名事件}

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

但不要使用警报()内的焦点处理程序,请改用console.log()。 Alert()会在某些浏览器上创建一个循环。

DEMO

2

用途如下:

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