1

我在屏幕布局中使用了一些容器小部件。我需要将容器扩展为具有“onClick”事件,这样我就可以按照以下方式做一些事情:

<screen>
    <container name="customer-list" ..>
        <!-- some content over here -->
    </container>

    <action:behaviors>
        <action:when widget-event="customer-list.onClick">
            <!-- some actions here -->
        </action:when>
    </action:behaviors>
</screen>
4

1 回答 1

2

要添加对 onClick 事件的支持,您需要将以下内容添加到小部件:

在小部件的构造函数中声明事件:

WidgetName = function() {
    this.onClick = new Toronto.client.Event("WidgetName onClick");
};

然后在启动方法中添加以下行:

widgetContext.addManagedDOMEvent(this.getContainerElement(), "onclick", this._onClickHandler, this, "WidgetName onClick binding");

唯一要实现的是实际的处理程序:

, _onClickHandler: function() {
    this.onClick.fireEvent({
        widget: this
    });
}

这个想法是您将一个事件添加到小部件,将事件绑定到 DOM 节点,然后在处理程序中扩展 fireEvent 的属性对象以包含屏幕所需的所有相关细节。

于 2012-09-03T08:10:39.617 回答