【问题标题】:How to detect focus changed event in JS?如何检测JS中的焦点更改事件?
【发布时间】:2014-07-09 02:07:46
【问题描述】:

我想写一个函数,这个函数可以检测焦点是否在某个元素上。如果焦点在元素上,我调用onfocus()函数,如果不在元素上,我什么都不做。我该怎么做?

【问题讨论】:

标签: javascript


【解决方案1】:

许多不同的方法可以做到这一点。

这里有 2 个例子:

解决方案 #1:

您可以使用简单的内联 onblur 函数来查看某个元素是否被聚焦。这可能是最简单的方法。

<input type="text" onblur="javascript:alert('You have focused out');" />

Demo

解决方案 #2:

HTML:

<input type="text" />

JQuery:

var selectedInput = null;
$(function() {
    $('input').focus(function() {
        selectedInput = this;
    }).blur(function(){
        selectedInput = null;
        alert("You have focused out");
    });
});

Demo

如果你想要多个,你可以使用:

$('input, textarea, select').focus(function() {

Credits

您可以使用blurfocus 函数来查看某个元素是否被聚焦。

【讨论】:

  • 是的,这很好,但是当我离开这个元素和另一个元素时,我不知道我不在text 元素上。对吗?
  • 当你离开元素时,它应该检测到你离开了元素,因为onblur内联函数:)
  • 哦,不好意思,onblur属性是我说的,非常感谢~
  • 对,你真好~​​span>
  • StackOverflow 上的整个 JavaScript 场景都被毁了。除非有人明确定义他们想要 JQuery,否则 JavaScript 就意味着——干净的 JavaScript。框架来来去去,因为人们以某种​​方式认为用 jQuery 显式代码回复是可以的—— StackOverflow 被成千上万这样的回复淹没了,你把框架误认为是一种语言或平台!
猜你喜欢
  • 1970-01-01
  • 2013-11-03
  • 2010-10-28
  • 2011-08-24
  • 1970-01-01
  • 2010-09-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多