我们必须使用旧的Dojo版本1.1.x,我们的问题是找到更改Tab时触发的事件(用户离开选项卡)。
场景:选项卡中有一个表单,数据被编辑,选项卡没有保存,现在我们正在寻找一种方法来阻止这种情况。
dojo.connect(this.myTabPoint, "onShow", function(evt){
alert('X');
});
工作正常,但我们必须对每个其他标签实施检查(;
答案 0 :(得分:1)
在Dojo 1.1.2中,_hideChild(/*Widget*/ page)
中有一个方法dijit.layout.StackContainer
(即dijit.layout.TabContainer
的超类),它将调用页面/标签的onHide
方法(例如ContentPane
)如果存在。
问题是onHide
中没有dijit.layout.ContentPane
方法,因此您应该在代码的某个位置向ContentPane添加onHide
存根方法:
dojo.extend(dijit.layout.ContentPane, {
onHide: function() {
// stub method
}
});
然后,您需要做的就是在特定标签/ ContentPane上dojo.connect
到onHide
方法:
dojo.connect(dijit.byId("tab1"), "onHide", function() {
console.log("tab1 is hidden now");
});