Перезапустите затухание в текстовом массиве затухания цикла - PullRequest
1 голос
/ 25 июля 2011

Я пытаюсь отобразить элементы из массива текста одним нажатием кнопки. Все элементы отображаются правильно с первого раза, но если я снова нажму на кнопку, ничего не произойдет. Я попытался адаптировать код отсюда: периодическое изменение текста в диапазоне от массива с помощью jquery

var terms = ["term 1", "term 2", "term 3"]; //array of terms to rotate

function rotateTerm() {
var ct = $("#rotate").data("term") || 0;
if (ct == 3) return;
$("#rotate").data("term", ct == terms.length -1 ? 0 : ct + 1).text(terms[ct])
  .fadeIn().delay(2000).fadeOut(200, rotateTerm);
}

Мой HTML-код:

<form>
<input type="button" value="200 wpm" onclick="rotateTerm()" />
</form>
<p><span id="rotate"></span></p>

Спасибо за помощь

1 Ответ

1 голос
/ 25 июля 2011

Что вы имеете в виду, когда «ничего не происходит»? Что должно произойти? Я настроил скрипку, и когда вы нажимаете кнопку, термины начинают появляться правильно и продолжают бесконечно циклически повторяться. Что должно произойти?

скрипка здесь: http://jsfiddle.net/nicolapeluchetti/KwTWZ/

РЕДАКТИРОВАТЬ - если вы просто хотите повернуть один раз, а затем снова повернуть, если вы нажмете кнопку, вы можете сделать:

var terms = ["term 1", "term 2", "term 3"]; //array of terms to rotate

function rotateTerm() {
    var ct = $("#rotate").data("term") || 0;

    if (ct == 3) {
        $("#rotate").data("term", 0)
        return;
    }
    $("#rotate").data("term", ct == terms.length ? 0 : ct + 1).text(terms[ct]).fadeIn().delay(2000).fadeOut(200, rotateTerm);
}

скрипка; http://jsfiddle.net/nicolapeluchetti/KwTWZ/1/

...