jQuery MiniUI

 找回密码
 立即注册
查看: 4967|回复: 4
打印 上一主题 下一主题

beforeactivechanged方法内获取选中的tab对象 [复制链接]

Rank: 3Rank: 3

跳转到指定楼层
楼主
发表于 2017-7-18 19:16:50 |只看该作者 |倒序浏览
请教一下。
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对象?

Rank: 8Rank: 8

沙发
发表于 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);
            }
   
})

Rank: 3Rank: 3

板凳
发表于 2017-7-19 14:23:30 |只看该作者
felt 发表于 2017-7-19 10:36
tabs.on("activechanged"...是绑定事件,你的做法是错误的,事件一次次多余绑定,导致切换的时候触发越来越 ...

太棒了,谢谢版主!

Rank: 3Rank: 3

地板
发表于 2017-12-17 01:30:05 |只看该作者
本帖最后由 hks2002 于 2017-12-17 01:31 编辑

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

Rank: 3Rank: 3

5#
发表于 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( );

Archiver|普加软件

GMT+8, 2025-6-6 09:37 , Processed in 1.032561 second(s), 9 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部