Dojo的TabContainer是常用的Dojo的控件,切換標籤時常常需要觸發一些自定義的事件,但是Dojo本身居然沒有提供OnSwitch的事件,讓人火大。研究了半天,搞定了。
首先找到TabContainer控件以及其中需要捕捉切換的標籤的Dijit對象,如:
<div dojoType="dijit.layout.TabContainer" id="tabContainer" style="width:100%;height:550px" tabStrip="true">
<div dojoType="dijit.layout.ContentPane" id="dbTab" title="DB Config" selected="true">
</div>
<div dojoType="dijit.layout.ContentPane" id="schemaTab" title="Schema Config">
</div>
</div>
中的dbTab標籤,
var tabContainer = dijit.byId("tabContainer");
var dbTab = dijit.byId("dbTab");
然後增加標籤的點擊事件,
dbTab.controlButton.onClick = function(){
}
由於這個事件覆蓋了Dojo自己的切換事件,因此要增加一行切換標籤的標準動作,
dbTab.controlButton.onClick = function(){
tabContainer.selectChild(dbTab);
// TO DO
}
OK,然後在TO DO的地方就可以寫你希望的處理函數了