八、 事件
1. 创建Event:
Event(type:String, bubbles:Boolean = false, cancelable:Boolean = false)
type : 事件的类型,如:click
bubbles : 是否可以冒泡
cancelable : 事件是否可以被取消,如果设置了 true, 则在 target/currentTarget 的事件监听中,可以调用event.stopImmediatePropagation()取消事件的传递
2. 将事件调度到事件流中
dispatchEvent() : 将事件调度到事件流中。事件目标是对其调用 dispatchEvent() 方法的 EventDispatcher 对象。
意思就是,谁调用了dispatchEvent,谁就是事件的目标对象,
在事件event对象传递到目标对象时,event对象会依次经过目标对象的所有的父容器,
事件流的过程:
捕获阶段:event对象传递方向: 父容器A --> 父容器B --> 父容器C --> 父容器.... event.eventPhase=1
目标阶段:event对象传递方向: 目标对象 event.eventPhase=2
冒泡阶段:event对象传递方向: 父容器C --> 父容器B --> 父容器A event.eventPhase=3
3. 在target/currentTarget的监听事件中,可以做以下操作:
event.stopImmediatePropagation()取消事件的传递 , 需要在创建Event时,设置cancelable为true才可以生效
event.preventDefault()取消事件的默认行为,例如,可以监听TextInput的键盘keyDown事件,然后在监听器中,调用preventDefault()方法,就可以阻止用户输入信息在输入框中的显示。
Event(type:String, bubbles:Boolean = false, cancelable:Boolean = false)
type : 事件的类型,如:click
bubbles : 是否可以冒泡
cancelable : 事件是否可以被取消,如果设置了 true, 则在 target/currentTarget 的事件监听中,可以调用event.stopImmediatePropagation()取消事件的传递
2. 将事件调度到事件流中
dispatchEvent() : 将事件调度到事件流中。事件目标是对其调用 dispatchEvent() 方法的 EventDispatcher 对象。
意思就是,谁调用了dispatchEvent,谁就是事件的目标对象,
在事件event对象传递到目标对象时,event对象会依次经过目标对象的所有的父容器,
事件流的过程:
捕获阶段:event对象传递方向: 父容器A --> 父容器B --> 父容器C --> 父容器.... event.eventPhase=1
目标阶段:event对象传递方向: 目标对象 event.eventPhase=2
冒泡阶段:event对象传递方向: 父容器C --> 父容器B --> 父容器A event.eventPhase=3
3. 在target/currentTarget的监听事件中,可以做以下操作:
event.stopImmediatePropagation()取消事件的传递 , 需要在创建Event时,设置cancelable为true才可以生效
event.preventDefault()取消事件的默认行为,例如,可以监听TextInput的键盘keyDown事件,然后在监听器中,调用preventDefault()方法,就可以阻止用户输入信息在输入框中的显示。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步