在tabs里动态载入几个小标签tab1,tab2,tab3……
我在标签切换的时候做了一个判断,如果不符合条件不允许切换标签。
但现在的结果是,我用beforetabchange事件可以得到想要的条件,点击tab2仍然会执行activate事件。
有什么办法能够在beforetabchange中阻止activate执行呢?
[code="java"]
tabs.activate('act1');//显示第一个标签
tab2.on('activate', updater2.refresh, updater2, true);
tabs.on('beforetabchange',function(){
alert("tabchanged!");
});
[/code]
this.fireEvent("beforetabchange", this, e, tab);
if(e.cancel !== true && !tab.disabled){
上面代码可以通过控制e的cancel属性控制。设置为true即可
tabs.on('beforetabchange',function(t,e){
e.cancel = true;
}
tabs.on('beforetabchange',function(){
if(){
return false;//返回false 表示阻止切换
}
});
tab2.on('activate', function() {
alert('tab2');
}, true);
tabs.on('beforetabchange', function(t, p) {
if (p == tab2)
return false;
});
测试看看,应该不会出现你那问题。可能是你哪里写的有问题。
在切换面板的时候,下面这段代码触发beforetabchange事件。如果beforetabchange 返回值为false,就不进行切换面板。
if(!item || this.fireEvent('beforetabchange', this, item, this.activeTab) === false){
return;
}
你上面代码只会打印alert(1);并不会执行alert('tab2');
你使用的是什么版本的?