云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

天翼云_阿里云测试服务器_排行榜

小七 141 0

天翼云_阿里云测试服务器_排行榜

教程索引-我如何自学以下主题第1部分–UI5模块延迟加载机制第2部分-控件渲染器第三部分-本博客第4部分-控制元数据第5部分–控制实例数据–函数setXXX()和getXXX()是如何实现的第6部分-引擎盖下的控制数据绑定第7部分-不同绑定模式的实现:单向、双向、一次性第8部分-控制ID第9部分-控制国际化支持Part10–XML视图中的按钮控件第11部分-按钮控件及其底层DOM此博客的内容"点击"事件与"按下"事件"按"事件注册摘要事件调度事件抽象角度事件处理

第1部分–UI5模块延迟加载机制第2部分-控件渲染器第三部分-本博客第4部分-控制元数据第5部分–控制实例数据–函数setXXX()和getXXX()是如何实现的第6部分-引擎盖下的控制数据绑定第7部分-不同绑定模式的实现:单向、双向、一次性第8部分-控制ID第9部分-控制国际化支持Part10–XML视图中的按钮控件Part11–Button控件及其底层DOM

在上一部分中,解释了Button控件的原生html代码是如何由其呈现器生成的,ButtonRenderer.js按钮.

"点击"事件与"按下"事件

我们可以在Chrome网络选项卡中找到,UI5按钮控件由本机"按钮"标签表示。在这一部分,企业软件公司,我将分享我如何研究这个控件的事件处理逻辑。

在w3学校,如何用大数据,我们被教导鼠标点击按钮标签的事件是"onclick"。很清楚,不是吗?

回到我们的简单应用程序,您会惊奇地发现没有在这个按钮元素上注册任何事件侦听器。

相反,当您单击复选框"祖先"时,这次发现click event的事件处理程序在其父节点上注册,即id为"content"的div标记。

同样在我们的示例应用程序中,物联网流量卡,我们不在"click"事件上注册处理函数。相反,我们只需将一个对象传递给Button构造函数,其中包含一个指向函数的字段"press"。

因此,当用户在浏览器中单击按钮时,UI5框架如何知道注册到"press"的函数必须被调用才能对本机"click"事件作出反应?"按"和"按"是什么关系?

"press"事件定义为元数据的一部分按钮.js.

在此文件中搜索关键字"press",点击一次即可Button.prototype.onclick按钮. 为了验证是否是这个函数完成了从"click"到"press"的"translation",我们在它上面设置了一个断点

在运行时,当点击按钮时,按钮.onClick使用一个类型为"click"的JQuery事件对象调用。此onclick函数负责将本机click事件委托给UI5事件"press"。

press"事件注册

如何这是壁炉最终成功调用函数"控制台.log('Alert from'+oButton1.getText());"我们在示例应用程序中定义了什么?

调试到firePress实现中,它只需从中央数组查询事件处理程序中的press事件这是我的地盘"

在我们的简单应用程序中,我们从不进行任何显式的事件注册,因此我们的事件处理何时何地被填充到中央事件存储库数组中"这是我的地盘"?

还记得第一部分描述的原型链吗?

BaseObject->EventProvider->ManagedObject->Element->Control.

EventProvider的构造器很神秘:

在这个博客的第一章,我们找到了button标签的父项div标签的事件处理程序。点击下面的超链接:

在那里设置断点,然后再次点击按钮。通过callstack可以了解鼠标点击事件是如何从父div标签传递到子button标签的:

摘要

本博客中的"press"事件被SAPUI5描述为"语义事件"。语义事件不作为本机HTML浏览器事件存在。UI控件实现负责将本机浏览器事件映射到语义事件。有关更多详细信息,请参阅SAP help:UI Control API:Event Handling.

根据Andreas的评论,UI5事件设计可以概括为"Event Dispatch",这在许多前端框架中常用。

"事件处理程序不是添加到标记,而是添加到一个祖先"div tag with id"content""。出于性能原因,UI5没有向所有HTML元素添加太多的事件处理程序,计算机大数据,而是只向这些公共祖先元素(我们称之为"uiarea")添加事件处理程序。事件被集中处理,然后"分派"到控件,这些控件是事件的发源地。因此,中心UI5event处理程序在这个祖先元素上注册"click"事件(以及其他经常使用的事件),返利啦,当它发生时,这个中心事件处理程序会检查它来自何处,并检查层次结构这一部分中的所有控件,是否有任何控件实现了"onclick"函数并调用它。这就是按钮控件中的onclick函数的调用方式。"

请参阅David Walsh的另一篇文章JavaScript事件委托如何工作。

为什么UI5选择引入语义事件?见安德烈亚斯下面的回答:

"这些"语义"控制事件,如按钮的"按下",也意味着从不同的平台抽象:在鼠标设备上是"点击",但在触摸设备上是"触摸开始"加上"触摸结束"(或组合的"点击")。或者它甚至可以是"空间"键时,按钮是集中。但是对于应用程序来说,重要的是要知道按钮已经被触发了。也许将来你甚至可以通过看和眨眼来触发按钮?因此,按钮有自己的事件,它在内部处理触发按钮的所有不同方式。"