javascript - 触发焦点事件将触发模糊事件(不使用警报和浏览器控制台)

标签 javascript onfocus

jsfiddle link

<input id = "focus-ipt" type = "text" value = "nothing" />

var $focusIpt = document.querySelector( "#focus-ipt" );
$focusIpt.addEventListener( "blur", function ( e ) {
   $focusIpt.value = "blured!";
} );
setTimeout( function () {
    $focusIpt.focus();
    }, 1000 );

我只是触发焦点事件,但焦点后触发模糊事件; 我找了好久,关闭控制台,使用setTimeout,但是都无法解决;我真的不知道这是怎么发生的,谁能帮帮我吗?

最佳答案

事实并非如此; <强> focus() 不会自动触发 blur()

由于您正在与 DOM 交互,所以 blur() 被触发。通过单击 fiddle 中的按钮之一(例如 RunTidy),#focus-ipt 元素不再处于事件状态 - - 您点击的按钮是。

如果您只是等待超时,而不执行任何操作,则 blur() 事件不会发生。一旦您点击输入,blur()就会发生。

这可以在以下示例中看到:

var $focusIpt = document.querySelector("#focus-ipt");
$focusIpt.addEventListener("blur", function(e) {
  $focusIpt.value = "Blurred!";
});
setTimeout(function() {
  $focusIpt.focus();
}, 1000);
<input id="focus-ipt" type="text" id="myText" value="Sample Text">
<button type="button">Click me to lose focus</button>

希望这有帮助! :)

关于javascript - 触发焦点事件将触发模糊事件(不使用警报和浏览器控制台),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45993043/

相关文章:

javascript - 如果单击复选框,防止 TD onclick 触发?

javascript - 使用正则表达式计算字符串中子字符串的所有出现次数

html - 关注多个元素及其属性

javascript - 在 polymer 中是否可以将从iron-ajax获得的数据存储在数组中?

javascript - 检测弹出窗口何时关闭

javascript - 如何找到给定时间的星期一?

php - OnFocus javascript 命令导致 WordPress 崩溃

jquery - Selectize.js onFocus 回调不起作用

reactjs - 在 Enzyme 中测试 input.focus()

javascript - 单击键盘选项卡按钮时显示下拉菜单