我想遍历一组 div 并在触发单击事件时随机将它们淡出,但目前我必须不断单击以将其他 div 全部淡出。我宁愿单击一个 div 并让它的所有 div 随机淡出。我在 while 循环中添加了一些 console.logs,一切似乎都正常,问题是当我尝试淡出实际元素时。如果有人可以帮助那会很棒吗?

在这里 fiddle :http://jsfiddle.net/kyllle/sdpzJ/7/

最佳答案

也决定把它扔掉。简化。

$(function() {
    var $ctn = $('#container .ctn');

    function randomFadeOut() {
        var $r = $ctn.not($(this));
        var e = 0;
        while (e < $ctn.length) {
            $r.eq(e).delay(Math.random() * 500).animate({ opacity: 0 });
            e++;
        }
    }

    $ctn.hide().click(randomFadeOut).each(function(v) {
        $(this).delay(50 * v).fadeIn();
    });
});

http://jsfiddle.net/sdpzJ/15/

关于javascript - 使用 while 循环遍历元素时遇到问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9081697/

10-11 13:42