jQuery MiniUI

标题: beforeactivechanged方法内获取选中的tab对象 [打印本页]

作者: 牛牛牛    时间: 2017-7-18 19:16:50     标题: beforeactivechanged方法内获取选中的tab对象

请教一下。
tabs.on("beforeactivechanged", function (e) {
    var a =confirm("是否确认跳转?");
    if(a){
        tabs.on("activechanged", function (e) {
            var tab = tabs.getActiveTab();
            alert(tab.title+"===="+tab.id);
            if(tab.name=="tab1"){
                tabs.loadTab(url, tab);
            }
        });
    }else{
        e.cancel = true;
    }
});
在上面代码中,我用原始的confirm以达到在切换tab前弹出提示框的目的,如果点击确认则切换tab。但是此时,在beforeactivechanged方法中获取选中的tab对象,获取的对象是切换前的tab对象,并不是选中的tab。于是我在beforeactivechanged内加了一个activechanged方法,虽然可以获取当前选中的tab对象,但是我发现随着切换tab次数的增加,alert也越来越多,但是加载URL只有一次。
所以我的问题是,有没有方法在beforeactivechanged中获取当前选中的tab对象?

作者: felt    时间: 2017-7-19 10:36:37

tabs.on("activechanged"...是绑定事件,你的做法是错误的,事件一次次多余绑定,导致切换的时候触发越来越多。
beforeactivechanged事件内e.tab是你要切换的tab,不是原tab
tabs.on("beforeactivechanged",function(e){
     var tab = e.tab;
            e.cancel = true;
            if (confirm("")) {
                tabs.activeTab(tab);
            }
   
})
作者: 牛牛牛    时间: 2017-7-19 14:23:30

felt 发表于 2017-7-19 10:36
tabs.on("activechanged"...是绑定事件,你的做法是错误的,事件一次次多余绑定,导致切换的时候触发越来越 ...

太棒了,谢谢版主!
作者: hks2002    时间: 2017-12-17 01:30:05

本帖最后由 hks2002 于 2017-12-17 01:31 编辑

beforeactivechanged事件内e.tab是你要切换的tab,不是原tab请问, 如何获得原Tab?

作者: hks2002    时间: 2017-12-17 01:36:17

本帖最后由 hks2002 于 2017-12-17 20:04 编辑
hks2002 发表于 2017-12-17 01:30
beforeactivechanged事件内e.tab是你要切换的tab,不是原tab请问, 如何获得原Tab?
...

知道了,通过e.sender 直接getActiveTab( );




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2