如何模仿enyo.Popup行为

时间:2013-03-05 10:16:07

标签: event-handling popup enyo

我目前正在尝试模仿enyo.Popup行为。我查看了github handlers: { //... onRequestShow: "requestShow", onRequestHide: "requestHide" }, //* @public events: { //* Fires after the popup is shown. onShow: "", //* Fires after the popup is hidden. onHide: "" }, ,但很难理解它。

特别是那是我遇到的代码:

this.show()

代码中的其他地方,有this.show()的调用。

首先,我没有找到this.show()的声明。其次,虽然我认为它必须分别在this.hide()onShow内,但onHideshow()事件在哪里被调用?

最后,我定义了一种自己,包含上面的代码。但是,尽管hide()requestShow()方法正在运行,但我没有调用我自己的requestHide()和{{1}}方法。

我错过了什么?

1 个答案:

答案 0 :(得分:2)

首先,show是在enyo.Control上声明的函数:http://enyojs.com/api/#enyo.Control::show

onShowonHide是弹出窗口所有者可以订阅的事件(因此,它们在事件块中的声明)。它们在showingChanged函数中调用。调用事件的方法是{EventNameWithoutOn}。在这种情况下:doShow

查看有关事件的文档:https://github.com/enyojs/enyo/wiki/Event-Handling
(或者,你可以买我好的Enyo书!http://roysutton.com/2013/01/31/print-book-now-available/

处理程序块是控件订阅它(或其子代)生成的消息的一种方式。话虽如此,我在代码中看不到任何生成onRequestHide事件的地方。

我希望有所帮助!