变量范围到tabs()jQuery UI函数

时间:2015-12-16 09:00:58

标签: javascript jquery jquery-ui tabs

$(function() {

    $("#tabs").tabs({
        beforeActivate: function (event, ui) {
            var tab = "";
            tab = ui.newPanel.attr('id');
            if( $('#tab-inserimento').attr('id') === tab ){
                alert("a");
            }else if( $('#tab-ricerca').attr('id') === tab ){
                alert("b");
            }

        }

    });

    apriTab(tab);

});

我的这个功能有问题。 tab变量获取当前所选标签的id值,确定。

但是,我还需要将此变量用于apriTab()函数。但是,存在范围问题。就像编写的代码apriTab()无法看到变量一样。要解决此问题,我可以在tab之外声明$("#tabs").tabs({..。 通过这种方式,我会创建另一个问题:tab = ui.newPanel.attr('id');它不起作用。我确定,因为我使用chrome控制台进行了调试,整个功能都没有执行。

更新

$(function() {

$("#tabs").tabs({
    beforeActivate: function (event, ui) { 
        var tab = "";
        tab = ui.newPanel.attr('id');
        if( $('#tab-inserimento').attr('id') === tab ){
            getNotifiche(LIV_NOTIFICA_TAB, AREA_TEMATICA_PAGAMENTI, TAB_GESTIONE);
        }else if( $('#tab-ricerca').attr('id') === tab ){
            getNotifiche(LIV_NOTIFICA_TAB, AREA_TEMATICA_PAGAMENTI, TAB_CONSULTA);
        }
        apriTab(tab);
    }

});

apriTab(tab); //Here, I get an error because tab variable is not visible. But, with this error, the code above of this call works! And, always about this call, if I remove it, nothing works again! How it's possible?!

});

1 个答案:

答案 0 :(得分:0)

或者你可能有两个不同的变量

$(function() {
    var tab = "";
    $("#tabs").tabs({
        beforeActivate: function (event, ui) {
            tab = ui.newPanel.attr('id');
            if( $('#tab-inserimento').attr('id') === tab ){
                alert("a");
            }else if( $('#tab-ricerca').attr('id') === tab ){
                alert("b");
            }
        }
    });
    apriTab(tab);
});