首页 > 编程语言 >[Javascript] event target and currentTarget

[Javascript] event target and currentTarget

时间:2023-08-04 16:25:06浏览次数:42  
标签:console log parent Javascript currentTarget onClick event

<Parent>
    <child>
       <button />
    </child>
 </Parent>
function onClick(event) {
  console.log('target: ', event.target) // button
  console.log('currentTarget', event.currentTarget) //parent
}

parent.addEventListener('click', onClick)

 

currentTarget may change and will be null after event is dispatched.

function onClick(event) {
    console.log('currentTarget', event.curretTarget) //parent
    
    setTimeout(() => {
      console.warn('After timeout')
      console.log('event.currentTarget', event.currentTarget) // null
    })
  })
}

parent.addEventListener('click', onClick)

To resolve the issue:

function onClick(event) {
    console.log('currentTarget', event.curretTarget) //parent
    const captured = event.currentTarget
    
    setTimeout(() => {
      console.warn('After timeout')
      console.log('event.currentTarget', event.currentTarget) // null
      console.log('captured.currentTarget', captured) // parent
    })
  })
}

parent.addEventListener('click', onClick)

 

标签:console,log,parent,Javascript,currentTarget,onClick,event
From: https://www.cnblogs.com/Answer1215/p/17606270.html

相关文章

  • 使用 JavaScript 实现待办事项列表
    让我们通过每个步骤的代码块来完成实现基本待办事项列表的步骤:1.设置HTML结构:2.设置待办事项列表的样式(可选):3.处理任务添加:4.显示任务:步骤3中的代码已涵盖此步骤。5.处理任务完成情况:6.处理任务删除:7.将任务存储在本地存储中(可选):8.重构和改进(可选):重构您的代码,使其更有......
  • ChatGPT 问答00005 Spring的ApplicationEventPublisher的使用案例
    下面是一个使用ApplicationEventPublisher的简单示例,演示了如何在SpringBoot中使用该接口发布和监听事件:首先,定义一个自定义的事件类CustomEvent,用于封装事件的数据:publicclassCustomEvent{privatefinalStringmessage;publicCustomEvent(Stringmessage){......
  • JavaScript之变量
    一:变量的概述简单来说,变量就是一个装东西的盒子。二:变量在内存中的存储本质:变量是程序在内存中申请的一块用来存放数据的空间。类似我们酒店的房间,一个房间就可以看做是一个变量。三:变量的使用变量在使用时分为两步:1.声明变量2.赋值1.声明//声明变量varage;//声明一个名称为a......
  • 正则表达式在JavaScript的使用
    正则表达式引入:邮件格式的匹配介绍检查字符串是否符合某些规则使用规则基本语法:构造函数方式:let变量=newRegExp("正则表达式","匹配模式")(更灵活)字面量方式:let变量=/正则表达式/匹配模式(更方便)匹配模式(可以有多个,且顺序无所谓):i忽略大小写g全......
  • JavaScript基础04
    函数函数定义function自定义函数名(){ 函数体代码;}//函数名命名:1.与变量名规则基本上是一样的!2.建议变量名使用名词,函数名用动词3.大小写敏感4.普通函数使用小驼峰,不要首字母大写5.首字母大写的函数一般用作自定义构造函数函数调用自定义函数名();匿名......
  • [async]子线程内开启协程 RuntimeError: There is no current event loop in thread '
    在子线程内直接获取事件循环会报错:RuntimeError:Thereisnocurrenteventloopinthread'Thread-2',此时的代码为:loop=asyncio.get_event_loop()loop.run_until_complete(协程函数) #执行解决方法:在子线程内创建并配置事件循环new_loop=asyncio.new_event_loop(......
  • 前端性能优化的利器 ——— 浅谈JavaScript中的防抖和节流
    防抖和节流函数是工作中两种常用的前端性能优化函数,今天我就来总结一下什么是防抖和节流,并详细说明一下如何在工作中应用防抖和节流函数什么是防抖和节流?在JavaScript中,防抖(debounce)和节流(throttle)是用来限制函数执行频率的两种常见技术。防抖(debounce)是指在某个时间段内......
  • Javascript 方法有多个参数有默认值,但是只想为其中某个参数赋值
    例子:functionlog(a,b=2,c=3,d=4){console.log(a,b,c,d)}log(1);//output:1234log(1,3,6,9);//1369log(1,undefined,9,12);//12912log(1,undefined,0);//1204log(1,undefined,undefined,16);//12316就是在你想......
  • android调用javascript传多个参数
    Stringparam1="Hello";Stringparam2="World";Stringscript="yourJavaScriptFunction('"+param1+"','"+param2+"');";webView.loadUrl("javascript:"+"yourJava......
  • JavaScript ES5模块导入ES6区别
    JavaScriptES5模块导入ES6区别   ES6引入了原生的模块系统,使用import和export关键字来导入和导出模块。ES6模块系统相比ES5的导入方法具有以下几个区别: 1.语法不同:-ES5:使用Require.js或CommonJS,通过`require`方法导入模块。-ES6:使用import关键字导入模块。 2......