我知道如何禁用標籤頁等。如何基於選項卡中的數據狀態來切換選項卡以停止dijit.layout.TabContainer?
這是關於如果用戶沒有滿足條件,則防止onclick事件切換到活動選項卡。
是否有一個函數,我可以連接到將通過我一個事件,我可以使用dojo.stopEvent()?
我知道如何禁用標籤頁等。如何基於選項卡中的數據狀態來切換選項卡以停止dijit.layout.TabContainer?
這是關於如果用戶沒有滿足條件,則防止onclick事件切換到活動選項卡。
是否有一個函數,我可以連接到將通過我一個事件,我可以使用dojo.stopEvent()?
我有同樣的問題,沒有直接的方式做到這一點,但你可以擴展你的widget:
dojo.extend(dijit.layout.TabController, {
onButtonClick: function(/*dijit._Widget*/ page,evt) {
// summary:
// Called whenever one of my child buttons is pressed in an attempt to select a page
// tags:
// private
this.beforeButtonClick(page,evt);
this._onButtonClick(page,evt);
},
beforeButtonClick:function(page,evt){
},
_onButtonClick:function(page,evt){
console.log(evt.cancelBubble);
if(evt.cancelBubble){
return;
}
var container = dijit.byId(this.containerId);
container.selectChild(page);
}
});
的用法是:
var widget = dijit.byId('your_tabContainer');
dojo.connect(widget.tablist,"beforeButtonClick",function(page,evt){
//do the detection, if it meet the condition, ignore it,
//if not, stop the event
if(page.id !== "tab1"){
dojo.stopEvent(evt)
}
});
你也可以做到這一點與方面。
aspect.around(tabContainer, "selectChild", function(selectChild) {
return function(page) {
if(confirm("Do you want to change tab?"))
selectChild.apply(this, arguments);
}
});
的偉大工程!謝謝 – danielpradilla 2011-04-25 19:11:43