javascript - 有没有办法在 blur 或 focusout 事件中获取被点击的元素?

标签 javascript jquery click target blur

<分区>

如何知道我输入的模糊或聚焦点在哪里?

我画了一个小例子:

HTML:

<div id ="all">
    <div id="whereIsInput">
        <input id="blur"/>
    </div>
</div>

CSS:

#whereIsInput{
    height: 100px;
    width: 200px;
    background-color: yellow; 
}

JS:

function onBlur(e){
    jQuery('#all').append('<div>' + e.type + ', ' + e.target.toString() + '</div>')    
}
jQuery('#blur').blur(onBlur);
jQuery('body').on('click', onBlur);

所以问题是:发生模糊时,点击在哪里?

我调查过这个: 1. 无法在 blur 或 focusout 事件参数中找到它 2.点击 body 后发生模糊

最佳答案

您可以设置一个标志来检查在单击之前是否发生了模糊事件。

var blurred = false;//blur flag

$(document).on("click", function(){
    if(blurred){
        console.log(this);
        blurred = false;
    }
});

$("input#blur").on("blur", function(){
    blurred = true;//blur occurred
});

关于javascript - 有没有办法在 blur 或 focusout 事件中获取被点击的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22554524/

相关文章:

javascript - 如果我将输入值存储在变量中,为什么它的值始终为空?

javascript - 使用 $.each 和 setInterval 循环播放连续动画?

jquery - 如何在页面显示前读取 CSS 位置

jquery - 使用 css 样式而不是 jQuery

javascript - 如何使 Javascript Tampermonkey 脚本搜索同一单词的小写和大写字符

javascript - 静态 Google map 自定义图标

javascript - 使用 AngularJS 动态改变路线

php - 使用对 Angular 线缩进显示段落的文本

javascript - .on ('click' , function(){}) 仅在第一次点击时起作用

c# - 我们如何阻止鼠标点击和按键被传输到网络浏览器中上传的文档?