我希望每次单击一个按钮时一个接一个地显示4个文本元素。这是我用来实现该目标的代码...

$('.btn').click(function(){
    $('.text').css({ 'opacity': '0' });

    function loadText(){
        var textNo = 1;

        function nextText(){
            $('.text'+textNo).animate({ 'opacity': '1' }, 400);
            textNo += 1;
        }

        if (textNo <= 4){
            nextText();
        };
    }

    setTimeout(loadText, 300);
});


我希望nextText()函数重复4次,尽管再次调用它似乎没有任何效果。我错过了这里明显的东西吗?

您可以在有限的时间内在这里看到它:http://thetally.efinancialnews.com/tallyassets/ceo-survey/index.html

我现在部分地意识到了这个问题。调用nextText时,该函数内部没有任何内容可以再次运行它。您可以在函数内调用函数吗?

最佳答案

您需要使用setInterval方法而不是setTimeout方法。因此,替换为:

setTimeout(loadText, 300);


有了这个:

setInterval(loadText, 300);

关于javascript - jQuery中的变量更改后重复功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30979662/

10-09 22:50