jQuery隐藏/显示随机不起作用?

时间:2013-01-04 01:36:21

标签: jquery

我在这里结束了我的智慧。我有一个.each()函数循环并有条件地隐藏/显示我的固定宽度div中的列。如果显示该列,则缩小前一列以使所有内容都适合,并在隐藏新列时将其扩展为其原始宽度。我的代码在80%的时间内完美运行,但有时完全随机它不起作用并且显示新列,并且前一个代码被扩展。如果我只是点击屏幕上的其他位置,则会立即修复。发生了什么事?

function doLoop(condition) {
    if (condition) {    
        $(".utility-split-rmdr").each(function(index) {
            $(this).prev().animate({width: "97px"}, 200);
            $(this).hide();
        });
    } else {
        $(".utility-split-rmdr").each(function(index) {
            $(this).hide();
            $(this).prev().animate({width: "130px"}, 200);
        });
    }
}

1 个答案:

答案 0 :(得分:0)

尝试一下:

function doLoop(condition) {
    if(!$(".utility-split-rmdr").is(':animated')) {
        if (condition) {    
            $(".utility-split-rmdr").each(function(index) {
                $(this).prev().animate({width: "97px"}, 200);
                $(this).hide();
            });
        } else {
            $(".utility-split-rmdr").each(function(index) {
                $(this).hide();
                $(this).prev().animate({width: "130px"}, 200);
            });
        }
    }
}

如果当前没有动画列,则只允许执行代码。

如果它仍然破裂,至少你知道这不是因为动画干扰了。