我知道如何禁用标签等。
这是为了防止 onclick 事件在用户未满足条件时切换到活动选项卡。
是否有一个我可以连接的函数将传递给我一个我可以使用 dojo.stopEvent() 的事件?
我知道如何禁用标签等。
这是为了防止 onclick 事件在用户未满足条件时切换到活动选项卡。
是否有一个我可以连接的函数将传递给我一个我可以使用 dojo.stopEvent() 的事件?
您也可以使用方面来执行此操作。
aspect.around(tabContainer, "selectChild", function(selectChild) {
return function(page) {
if(confirm("Do you want to change tab?"))
selectChild.apply(this, arguments);
}
});
小提琴:http: //jsfiddle.net/vmsuu/4/
我有同样的问题,没有直接的方法,但你可以扩展你的小部件:
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)
}
});