我想在输入焦点时用jQuery触发事件。应该很简单。输入:焦点不工作
根据this文章,if语句中应该有一个简单的$('#id').is(':focus')
。但不适合我:http://jsfiddle.net/PaulvdDool/BdG9N/
我也试过使用.focus
here但这只是不断触发事件。我可以让它工作,但我认为这不是做这件事的最好方法。
有人能给我看光吗?
我想在输入焦点时用jQuery触发事件。应该很简单。输入:焦点不工作
根据this文章,if语句中应该有一个简单的$('#id').is(':focus')
。但不适合我:http://jsfiddle.net/PaulvdDool/BdG9N/
我也试过使用.focus
here但这只是不断触发事件。我可以让它工作,但我认为这不是做这件事的最好方法。
有人能给我看光吗?
最好的解决方法是结合使用的事件处理程序focus
如:
$("#field").focus(function(){
//function body.
});
用此方法的主要问题是,警报窃取从输入,然后接收到焦点当您点击输入键入框时,再次对焦。这个循环然后重复。我假设你的代码会做一些事情,而不是抛出警报,所以一旦实际的代码就位,它不会重复抛出警报。
@PaulvdDool以及为什么不至少提供所有其他正确答案? –
@Kevin Bowersox几乎所有其他答案都表明我已经尝试过的解决方案(就像我在帖子中说的)。这是您的答案带来了解决方案的额外评论。 –
使用focus
作为一个功能:
$('#field').focus(function(){
alert('Hello world!');
});
不要忘记添加$(this).blur();
如果你将与alert
工作,因为在这种情况下,你有无限的警报。
使用的onfocus处理程序:{你可以使用别名当然“.focus()”只是知道一些定制的jQuery构建删除别名事件}
$('#field').on('focus',function(){
alert('Hello world!');
});
但不要使用警报()内的焦点处理程序,请改用console.log()。 Alert()会在某些浏览器上创建一个循环。
用途如下:
$('#field').focus(function(){
//do your stuff here
});
将其更改为上: 如果($( '#字段')对( '专注')){ 警报( '你好!世界'); } – mtt