3
$(".globalTabs").each(function(){
    var $globalTabs = $(this);
    var parent = $globalTabs.parent('form');

    //initiate jQuery UI tabs
    $globalTabs.tabs();

    var ATBwidth = $globalTabs.parent().outerWidth();
    var tabsWidth = 0;

    //get total width of all li/tabs
    $(".globalTabs .ui-tabs-nav li").each(function() {
     tabsWidth += $(this).outerWidth();
    });


    if(tabsWidth >= ATBwidth){
       //doing something here
    }


});

由于嵌套而中断.each- 有没有解决这个问题的简单方法?

Break = 第二个循环之后的功能,它指的$globalTabs是不再触发,因为它是未定义的。

愚蠢的错误:

在第二个循环之后,在本节中我提到了选择器两次。

所以,$(".globalTabs").each(function(){这当然是行不通的: $globalTabs.find(".globalTabs .ui-tabs-nav li").hide();

与循环无关。

感谢大家的帮助。

4

2 回答 2

5

而不是使用this传入值的值 from.each(index, value)

$(".globalTabs").each(function(index, value){
    var $globalTabs = $(value);
    var parent = $globalTabs.parent('form');

    //initiate jQuery UI tabs
    $globalTabs.tabs();

    var ATBwidth = $globalTabs.parent().outerWidth();
    var tabsWidth = 0;

    //get total width of all li/tabs
    $(".globalTabs .ui-tabs-nav li").each(function(index, secondValue) {
     tabsWidth += $(secondValue).outerWidth();
    });


    if(tabsWidth >= ATBwidth){
       //doing something here
    }


});
于 2012-08-20T13:58:02.420 回答
0

也许您的多个this变量变得混乱?尝试在回调函数中使用参数(http://api.jquery.com/each/):

$(".globalTabs").each(function(i,tab){
    var $globalTabs = $(tab);

// ...

$(".globalTabs .ui-tabs-nav li").each(function(j,myli) {
    tabsWidth += $(myli).outerWidth();
});
于 2012-08-20T13:57:28.833 回答