jQuery FadeIn / FadeOut, цикл через массив - PullRequest
1 голос
/ 11 августа 2009

По этому адресу - http://thespacebetweenthewords.org/sandbox/

Я пытаюсь перебрать массивы слов с помощью jQuery FadeIn / FadeOut эффект.

Массив отображаемых слов, кажется, не начинается с [0], хоть. Я, возможно, что-то упустил с порядком, в котором функции выполняются.

Если кто-то в сообществе хотел бы прокомментировать код как он стоит до сих пор, понимание ценится.

1 Ответ

2 голосов
/ 11 августа 2009

Вы правильно используете функцию обратного вызова с .fadeIn(), чтобы гарантировать, что слово не начнет исчезать до тех пор, пока оно не исчезнет. Однако вы не применили тот же принцип для итерации по глаголам. Ваша внешняя петля for мгновенно порвет все глаголы, показывая каждый из них, а затем терпеливо ждет, пока не наступит время их скрыть (когда, конечно, к тому времени будет отображаться только самый последний глагол). 1003 *

Вы можете попробовать что-то вроде этого:

function showWord(selector, words, wordTime, i) {
    if (words.length < i)
        return;
    var word = words[i];
    $(selector).html(word).fadeIn(wordTime, function() {
        $(selector).fadeOut(wordTime, function() {
            showWord(selector, words, wordTime, i + 1);
        });
    });
}
showWord("#verb-content", data.verbs, verbTime, 0);
...