如何在JS中检测焦点变化事件?

Cha*_*esX 4 javascript

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

imb*_*aby 8

许多不同的方法来做到这一点.

这是两个例子:

解决方案#1:

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

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

演示

解决方案#2:

HTML:

<input type="text" />
Run Code Online (Sandbox Code Playgroud)

JQuery的:

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

演示

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

$('input, textarea, select').focus(function() {
Run Code Online (Sandbox Code Playgroud)

积分

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

  • StackOverflow 上的整个 JavaScript 场景就这样被毁了。除非有人明确定义他们想要 JQuery,否则 JavaScript 就意味着——干净的 JavaScript。框架来了又去,因为人们不知何故认为用 jQuery 显式代码回复是可以的——StackOverflow 上充斥着成千上万这样的回复,在这些回复中你将框架误认为是一种语言或平台! (12认同)