jQuery检查元素是否被聚焦

时间:2015-08-27 13:35:13

标签: jquery

我有一个带输入和textarea的表单,我想知道一个元素是否被聚焦。

我尝试了类似的东西:

if($('input').is(':focus')){
  alert('ok')
}
else{
  alert('nok')
}

我只需要知道我的页面上的元素(输入或文本区域)是否是非常集中的。

谢谢!

3 个答案:

答案 0 :(得分:0)

$(document).on('focus', 'input', function(){
  //do stuff
});

答案 1 :(得分:0)

最好使用事件:

$('input').on('focus', function(){
  // some code here
});

$('textarea').on('focus', function(){
  // some code here
});

答案 2 :(得分:0)

您可以在页面加载时设置事件侦听器。当事件发生在任何这些元素上时,将执行一些操作。

$(function() {
    $('.focus').on('focusin', function() {
        $('.output').val( this.tagName + ' HAS FOCUS' );
    })
    .on('focusout', function(e) {
        $('.focus:focus').length || $('.output').val( 'NO ELEMENT HAS FOCUS' );
    });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
NAME: <input type="text" class="focus" name="fullname"/><br>
BIO:  <textarea name="bio" class="focus"></textarea><br><br>

STATUS: <input type="text" name="output" class="output" size="50" readonly="readonly" value="NO ELEMENT HAS FOCUS"/>