用jQuery逐渐淡入列表项

| 我正在构建一个投资组合页面,其中包含不同项目的列表(在无序列表中)。在页面加载时,我希望每个\“ li \”逐渐淡入。我已经做到了这样:
var eT = 0;     
$(\'.everything\').hide().each(function() {
    $(this).delay(eT).fadeIn(\'slow\');
    eT += 200;
});
我遇到的问题是,每个li都会根据它所代表的工作类型(网络,印刷等)而拥有一个(或多个)类。侧面有一个导航,可让您过滤要显示的作品类型。我遇到的是,如果我单击滤镜,而动画仍在加载到项目中,则情况会变得非常混乱。 这是当前工作页面的模板: http://jjaakk.miller-interactive.com/templates/work.html 我一直在尝试很多事情,但是成功有限。关于如何使这项工作更稳定的想法? 我尝试在单击上添加.stop(),但是它没有按我的预期工作。     
已邀请:
我认为问题与jQuery delay()的限制有关。以下使用jQuery delay()API建议的标准javascript setTimeout和clearTimeout。
<html>
<head>
    <script src=\"./jquery-ui-1.8.7.custom/js/jquery-1.4.4.min.js\" type=\"text/javascript\"></script>
    <script type=\"text/javascript\">
        $(document).ready(function() {
            var timeOuts = new Array();
            var eT=200;
            function myFadeIn(jqObj) {
                jqObj.fadeIn(\'slow\');
            }
            function clearAllTimeouts() {
                for (key in timeOuts) {
                    clearTimeout(timeOuts[key]);
                }
            }
            $(\'.everything\').hide().each(function(index) {
                timeOuts[index] = setTimeout(myFadeIn, index*eT, $(this));
            });
            $(\'#something\').click(function() {
                clearAllTimeouts();
                $(\'.everything\').stop(true,true).hide();
                $(\'.something\').each(function(index) {
                    timeOuts[index] = setTimeout(myFadeIn, index*eT, $(this));
                });
            });
        });
    </script>
    <style type=\"text/css\">
        li.everything {width:40px;height:40px;background:#bbb;display:inline-block}
        li.something {width:80px;height:80px;background:#000;display:inline-block}
    </style>
</head>
<body>
    <button id=\"something\">BLACK</button>
    <ul>
        <li class=\"everything\"></li>
        <li class=\"everything something\"></li>
        <li class=\"everything\"></li>
        <li class=\"everything something\"></li>
        <li class=\"everything\"></li>
        <li class=\"everything something\"></li>
        <li class=\"everything\"></li>
        <li class=\"everything something\"></li>
        <li class=\"everything\"></li>
        <li class=\"everything something\"></li>
    </ul>
</body>
</html>
    
我知道您说过您尝试在点击时添加.stop()。下面的代码可以做到这一点,但是对我来说很好。如果这不是您想要的,请在评论中解释。
<html>
<head>
    <script src=\"/js/jquery-1.4.4.min.js\" type=\"text/javascript\"></script>
    <script type=\"text/javascript\">
        $(document).ready(function() {
            var eT=0;
            $(\'.everything\').hide().each(function() {
                $(this).delay(eT).fadeIn(\'slow\');
                eT += 200;
            });
            $(\'.everything\').click(function() {
                $(\'.everything\').stop(true,true).fadeIn();
            });
        });
    </script>
    <style type=\"text/css\">
        li.everything {width:40px;height:40px;background:#bbb;display:inline-block}
    </style>
</head>
<body>
    <ul>
        <li class=\"everything\"></li>
        <li class=\"everything\"></li>
        <li class=\"everything\"></li>
        <li class=\"everything\"></li>
        <li class=\"everything\"></li>
    </ul>
</body>
</html>
Working Demo
    
索引多次延迟
 var eT = 0;     
    $(\'.everything\').hide().each(function(index) {
        $(this).delay(eT*index).fadeIn(\'slow\');
        eT += 200;
    });
    

要回复问题请先登录注册