2011-07-15 30 views
3

如何获得HTML的输入标签还集中或不使用jQuery如何获得输入具有焦点或不使用jQuery

keydown事件会为形式的工作,如果输入,图像等标签具有焦点。但它不会工作,它集中在形式上,而不是像输入,图像等任何标签。 我该如何解决这个问题。 请帮助 在此先感谢

$('#title').focusout(function() { if($(document.activeElement).is(":focus")) { alert('focus'); } else { alert('not focus'); } }); //这是不行的

+5

检查这里:http://stackoverflow.com/questions/967096/using-jquery-to-test-if-an-input-has-focus – ddinchev

回答

8

你可以做到这一点

if ($("#id").is(":focus")) { 
    alert('focus'); 
} 
+0

$('#title')。focusout(function() \t \t \t \t { \t \t \t \t \t如果($( “#MakeTicket /标题”)为( “:聚焦”)) \t \t \t \t \t { \t \t \t \t \t \t警报( '专注' ); \t \t \t \t \t} \t \t \t \t \t别的 \t \t \t \t \t { \t \t \t \t \t \t警报( '不集中'); 。 \t \t \t \t \t} \t \t \t \t \t $( '#部')专注(); \t \t \t \t \t return false; \t \t \t \t}); –

+0

$('#title')。事件的内容(函数() \t \t \t \t { \t \t \t \t \t如果($( “#MakeTicket /标题”)为( “:聚焦”)) \t \t \t \t \t { \t \t \t \t \t \t警报( '焦点'); \t \t \t \t \t} \t \t \t \t \t别的 \t \t \t \t \t { \t \t \t \t \t \t警报( '不集中'); 。 \t \t \t \t \t} \t \t \t \t \t $( '#部')专注(); \t \t \t \t \t return false; \t \t \t \t});但这不起作用。在我的代码中有任何错误 –

+1

对运行后添加到DOM中的动态元素不起作用... – Alex

3

它更容易通过使用jquery进行检查。 使用jQueryü可以做这样的

if($"#div/inputtocheck").is(":focus")) 
{ 
//do something u want if it is in focus 
} 

如果DIV是FOUCS的:focus收益真假,如果它没有焦点

+0

$('#title')。focusout(function(){if($(“#MakeTicket/title”)。is (':focus')){alert('focus');} else {alert('not focus');} $('#Department')。focus(); return false;});但这不起作用。在我的代码中有任何错误 –

+0

我无法理解你的代码,请在这里发布一个编辑问题。这将使得我们的代码更具可读性。 – kritya

1

您可以使用document.activeElement

+0

我试过这个,但是这也行不通 –

+1

这就是jQuery使用的,我提出它,因为它比jQuery对象和选择器使用效率高得多。如果你不能直接使用它,那么jQuery不能提供帮助。 * document.activeElement *是W3C [元素遍历规范](http://www.w3.org/TR/ElementTraversal/)的一部分,这是相当新的,所以一些浏览器不支持它。 – RobG

相关问题