循环定时 jquery 函数的最佳实践是啥

Posted

技术标签:

【中文标题】循环定时 jquery 函数的最佳实践是啥【英文标题】:What are your best practices for looping timed jquery function循环定时 jquery 函数的最佳实践是什么 【发布时间】:2013-11-22 13:55:26 【问题描述】:

当我使用 jQuery 进行循环时,我真的很困惑如何传递值并重新开始。

我的项目是一个“简单”的推荐旋转器。

<div id="testimonials">
    <div class="testimonial">
        <p>You're great!</p>
    </div>
    <div class="testimonial">
        <p>Thanks a lot!</p>
    </div>
    <div class="testimonial">
        <p>Rock on!</p>
    </div>
</div>
<script>
    jQuery(function ($) 
        $( document ).ready(function() 
            function fade() 
                $('.testimonial').hide();
                var t = $('.testimonial').length;
                alert(t);
                for( var i = 1; i <= t; i++)
                    function slideit()
                       var i = i;
                       $('.testimonial.nth-child(' + i + ')').show('slow');
                       $('.testimonial.nth-child(' + i + ')').hide('slow').delay(2000);
                    
                    slideit();
                
            
            fade();
        );
    );
</script>

现在,我被困住了。克服困难的指针?

【问题讨论】:

$('.testimonial.nth-child[' + i + ']') 应该是$('.testimonial:nth-child(' + i + ')') 感谢@Shikiryu。完成! 注意,如果你只是在寻找一个优雅的 jQuery 脚本来解决这个功能,请参阅***.com/a/8616480/497438 【参考方案1】:

最好的方法是使用setInterval()

var i = 0, // index of element to show
    t = $('.testimonial'), // elements
    max = t.length; // max elements
function fade() 
    t.eq(i).show('slow'); // we show current element
    t.not(':eq('+i+')').hide('slow'); // we hide others
    if(++i >= max) i=0; // we increment index and if we go over max, we reset index

window.setInterval(fade,3000); // we call fade every 3 seconds

http://jsfiddle.net/zf5Wb/

【讨论】:

啊。现在,我们正在使用 javascript。我经常依赖 jQuery 为我做我的思考,忘记了直接的 javascript 可能更简单。谢谢!【参考方案2】:

正如 Shikiryu 建议的那样。

修改代码

$('.testimonial.nth-child[' + i + ']')
$('.testimonial:nth-child(' + i + ')')

【讨论】:

您认为哪个答案有用,请勾选答案或如果您自己找到了解决方案,请发布您的答案。这有助于进入此页面的人们立即找到答案:) 我只是让它呼吸一下。当人们也不检查解决方案时,我很生气。

以上是关于循环定时 jquery 函数的最佳实践是啥的主要内容,如果未能解决你的问题,请参考以下文章

使用objective-c块时避免泄漏的最佳实践是啥?

CSS3 - 性能最佳实践是啥? [关闭]

Swift 中全局变量和函数的最佳实践是啥?

Javascript 在这种情况下使用 IF 或 SWITCH 或“动态函数名”的最佳实践是啥

使用返回 true 或 false 的函数的 PHP 最佳实践是啥?

Swift 风格:函数返回您需要的类型的可选类型以便继续,处理此问题的最佳实践是啥?