SAPUI5:正确处理点击事件

SAPUI5: Handle click events properly

我正在使用 SAPUI5 控件 GenericTile 并添加了 headerImageclick 事件。单击此图标时,首先触发图块的事件处理程序,因此我无法对图标单击本身做出反应(当然应该执行其他操作)。

var oGenericTile = new sap.suite.ui.commons.GenericTile({
                frameType: "TwoByOne",
                header: "My HEader",
                headerImage: "sap-icon://settings",
                tileContent: oTileContent
            });

oGenericTile._oImage.attachPress(function(oEvent) {
                sap.m.MessageToast.show("Icon has been pressed");
                oEvent.cancelBubble();
                oEvent.preventDefault();
            });

            oGenericTile.attachPress(function() {
                sap.m.MessageToast.show("I am always triggered first!!!   :-(");
            });`

知道如何避免这种情况吗?

你可以,例如也可以手动取消图块上的事件以避免这种行为......您只需要跟踪图标是否已被按下,请参阅 JSBin 上的简化示例: http://jsbin.com/daqifomoge/3/edit

当原始控件从开发人员那里获得更新时,扩展现有控件和覆盖方法总是有可能破坏事情...

不过,也许有更优雅的方法。

最好的, 克里斯蒂安