为什么同一个事件识别不同的activeElements?

安德烈·克莱兰

如果我点击一个按钮,activeElement就是按钮。
如果我留下一个输入框,activeElement它就是窗口。
如果我通过单击按钮离开输入框,则activeElement是...两者?
为什么onfocusout事件注册与activeElement按钮不同?无论如何我可以从 inputbox-leave-event 的函数调用中访问 c​​lick-on-button 事件吗?
即我可以问,“你离开我是为了那个糟糕的按钮吗?”

<button  type="button" onclick = "myFunction()">   button   </button><br>
<input   type="text"  onfocusout="myFunction()">  </input>

<script>
function myFunction() { 
  console.log(document.activeElement);
} 
</script> 
布拉沃

relatedTarget事件将告诉你在哪里它留给

当然,你必须使用addEventListener访问event摆在首位

但我认为这展示了你想看到的

它肯定会告诉你

“你离开我是为了那个糟糕的按钮吗?”

const button = document.querySelector('button')
const input = document.querySelector('input')

function buttonHandler(e) {
  console.log('button clicked');
}

function inputHandler(e) {
  console.log('leaving input for', e.relatedTarget?.tagName || 'window');
}
input.addEventListener('focusout', inputHandler);
button.addEventListener('click', buttonHandler);
<button type="button">   button   </button><br>
<input type="text"> </input>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

虽然哈希值是不同的,为什么仍然存储在同一个位置我的对象?

为什么同一个JAR文件,每次我建造它的时候有不同的hash?

为什么同一个程序在Windows上与Mac上运行的方式不同

为什么两个绑定到同一个函数会返回不同的值

为什么同一个地址返回不同的值?

在同一个集合的不同属性上使用equals不会返回记录,为什么?

为什么numpy从同一个随机状态返回不同的随机数?

为什么同一个按钮需要不同的元素定位器才能工作?

为什么对于具有不同库的同一个wav文件,我得到的采样率不同?

为什么对于同一个硬盘,磁盘实用程序和Gparted显示不同的信息?

为什么同一个磁盘读取测试结果如此不同

为什么同一个ajax调用有不同的请求头?

为什么我的下载进度条多次触发同一个事件?

为什么`view.scope_name(view.sel()[0].b)` 对于同一个文档是不同的?

为什么这个 javascript 函数为同一个查询返回两个不同的结果?

为什么变量不是在同一个函数中定义的,而是在不同的 if/else 语句中定义的?

为什么类模板中的成员函数在同一个地址创建同一个对象

为什么 JVM 会为同一个类发送多个 JVMTI ClassLoad 事件?

为什么我从同一个神经网络模型得到不同的预测?

为什么elasticsearch 对不同索引的同一个查询返回的结果差别太大?

打印同一个数组,在不同的函数中是不同的,为什么呢?

为什么 MySQL View 和同一个 View 的底层 SELECT 查询返回不同的结果?

为什么运行同一个程序需要不同的时间?

为什么从同一个包创建不同的对象

为什么我从同一个查询中得到两个不同的结果

为什么我的 C 代码在引用同一个变量时会打印出不同的值?

为什么连接到同一个 HBA 端口的物理磁盘可能有不同的路径?

为什么同一个笔记本在两个不同的环境中分配大量不同的 vram?

为什么同一个指针的地址不同?