JS blur和click 顺序冲突
时间: 2024-05-06 18:17:27 浏览: 30
在 JavaScript 中,当你点击一个元素时,会触发 click 事件。但是,如果你在点击该元素之前调用了该元素的 blur() 方法,则会先触发 blur 事件,然后才会触发 click 事件。
这是因为在点击元素时,浏览器会先将焦点从之前的元素移开,然后将其设置到被点击的元素上。如果在这个过程中调用了 blur() 方法,则会先触发 blur 事件,然后才会将焦点设置到被点击的元素上并触发 click 事件。
为了避免这种顺序冲突,可以使用 setTimeout() 函数将 blur() 方法的调用延迟一段时间。例如:
```
element.addEventListener('click', function() {
setTimeout(function() {
// do something after blur event
}, 100);
});
element.blur();
```
这样就可以确保在点击元素时先触发 click 事件,然后再触发 blur 事件。