共计 959 个字符,预计需要花费 3 分钟才能阅读完成。
sap.ui.core.Element 是所有 SAP UI5 页面 Element(中文翻译为元素) 的基类。
Element 是 UI5 UI 最根本的构建块。元素具备相似于 ManagedObject 的状态,它具备惟一的 ID,框架通过该 ID 记住它。它能够有关联的 DOM,但它不能出现本人。只有 SAP UI5 Control 能够出现本人,并负责出现它们作为子元素聚合的元素。如果一个元素已被渲染,它的相干 DOM 将取得与该元素雷同的 ID,从而能够通过 API 检索。当一个元素的状态扭转时,它会告诉它的父控件,它通常会从新渲染。
UI5 框架曾经为常见的浏览器事件注册了通用侦听器,例如 click
或 keydown
.
调用时,通用侦听器 (generic listeners) 首先应用 jQuery.control
办法确定相应的指标元素。而后它查看元素是否具备事件的 event handler 办法。依照常规,事件处理程序办法与事件同名,但以 on
为前缀:例如办法 onclick 是单击事件的处理程序,办法 onkeydown 是 keydown 事件的处理程序,依此类推。
如果有这样的办法,它将以原始事件作为惟一参数来调用。如果元素有一个已注册的委托列表,则它们的处理函数将在存在的状况下以雷同的形式调用。
元素和委托之间实现的处理程序集可能不同。并非由元素实现的每个处理程序都必须由其委托实现,并且委托能够实现相应元素未实现的处理程序。
能够在 module:sap/ui/events/ControlEvents
中找到以这种形式解决的浏览器事件列表。此外,框架应用雷同的命名约定调度伪事件(模块:sap/ui/events/PseudoEvents)。最初须要强调的一点是,一些框架事件也以这种形式分派,例如 BeforeRendering、AfterRendering(仅用于控件)和 ThemeChanged。
如果须要更多浏览器事件,控件能够在其 onAfterRendering 处理程序中应用本机 API 在 DOM 上注册侦听器。如果须要,他们也能够对其聚合元素执行此操作。如果事件可能常常触发(例如 mousemove),最好只在须要时注册它们,而后再勾销注册。无论如何,必须在 onBeforeRendering 侦听器中以及在退出钩子中销毁之前清理任何已注册的侦听器,以避免内存透露。