0

我的页面中有 3 个 jquery ui 标签。对于每个选项卡,我调用了一些函数。

$( "#tabs" ).tabs({

    select: function(event, ui) {
            var text = ui.tab.text;
            $("#tab1, #tab2, #tab3").empty();
            switch(text){
                case 'tab1':
                    //function
                    break;
                case 'tab2':
                    //function
                    break;
                case 'tab3':
                    //function
                    break;
            }
        }
    });

在某些情况下,我必须打开 tab2,例如,通过 #tab1 div 中的按钮,但使用不同的逻辑。从这里我使用:

$("#tab2").html("text tab2");
$("#tabs" ).tabs("select", 1);

此操作将 'text tab2' 添加到 #tab2 块,但 'tabs(select, 1)' 事件打开第二个选项卡并执行上述 switch case 'tab2' 中的功能。

如何在不使用“选择”选项的情况下在选项卡中添加文本并打开它?

4

1 回答 1

0

所以,我没有找到任何解决这个问题的方法,但我通过另一种方法解决了这个问题,通过发送到选项卡的 cookie 变量禁用“select case tab2 函数”。

$("#tabs").tabs({
select: function(event, ui) {
        var text = ui.tab.text;
        var type = "";
        $("#tab1, #tab2, #tab3").empty();
        var cook = $(this).tabs("option", "cookie");
        if(cook){
            type = cook.type;
        }
        switch(text){
            case 'tab1':
                //function
                break;
            case 'tab2':
                if(type!='extern'){
                      //function
                }
                break;
            case 'tab3':
                //function
                break;
        }
        //remove the cookie
        $(this).tabs({cookie: {type: ""}});
    }
});

要通过另一个链接打开选项卡,使用 'selected' 选项而不通过 case 'tab2':

$("#tab2").html("text tab2");
$("#tabs" ).tabs({cookie: {type: "extern"}});
$("#tabs" ).tabs("select", 1);
于 2012-08-23T09:16:15.667 回答