SAPUI5:正确处理点击事件
SAPUI5: Handle click events properly
我正在使用 SAPUI5 控件 GenericTile
并添加了 headerImage
和 click
事件。单击此图标时,首先触发图块的事件处理程序,因此我无法对图标单击本身做出反应(当然应该执行其他操作)。
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
当原始控件从开发人员那里获得更新时,扩展现有控件和覆盖方法总是有可能破坏事情...
不过,也许有更优雅的方法。
最好的,
克里斯蒂安
我正在使用 SAPUI5 控件 GenericTile
并添加了 headerImage
和 click
事件。单击此图标时,首先触发图块的事件处理程序,因此我无法对图标单击本身做出反应(当然应该执行其他操作)。
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
当原始控件从开发人员那里获得更新时,扩展现有控件和覆盖方法总是有可能破坏事情...
不过,也许有更优雅的方法。
最好的, 克里斯蒂安