Цикл по HTML-флажкам с использованием jQuery - PullRequest
2 голосов
/ 26 ноября 2010

Я пытаюсь написать с помощью jQuery что-то, что делает следующее.

Когда вы нажимаете, скажем, на абзаце, он проверяет, установлен ли флажок (отмечен ли), ждет ли он xколичество времени и устанавливает следующий флажок и т. д.

Ближайшее, что я получил (не сильно, извините) , вы можете увидеть здесь .

В этомНапример, вы должны нажимать один раз для каждой проверки, я не хочу этого.

Мне нужно это, когда вы нажимаете <p> это:

  • Чеки,
  • Изменения,
  • Проверки,
  • Изменения (и т. Д.)

Если есть возможность пройти через это, еще лучше.

Спасибозаранее, я надеюсь, что это достаточно ясно, если нет, пожалуйста, спросите!

РЕДАКТИРОВАТЬ: как сказал в основном @James, я хочу, чтобы

непрерывно проходиличекбоксы ставят и снимают галочки

1 Ответ

2 голосов
/ 26 ноября 2010

Вы имеете в виду что-то подобное?

$('p').click(function() {
    $(':checkbox').each(function(i) {
        var current = $(this);
        setTimeout(function() { current.attr('checked', !current.attr('checked'))}, i*500);
    });
});

Обновлен jsFiddle здесь: http://www.jsfiddle.net/jXHTJ/2/

ОБНОВЛЕНИЕ: Чтобы изменить порядок при каждом щелчке (как требуется в комментариях), чтобыфлажки отмечены / сняты в порядке {1,2,3}, затем {2,3,1}, затем {3,1,2}, вы можете использовать следующий код:

(function() {
    var startWith = 0;
    $('p').click(function() {
        var checkboxes = $(':checkbox');
        var numCheckboxes = checkboxes.length;
        checkboxes.each(function(i) {
            var current = $(this);
            var delay = (i + startWith) % numCheckboxes;
            setTimeout(function() { current.attr('checked', !current.attr('checked'))}, delay*500);
        });
        startWith = ++startWith % numCheckboxes;
    });
})();

Примечаниечто я инкапсулирую код в анонимную функцию, которую я немедленно выполняю, чтобы не загрязнять глобальное пространство имен переменной startWith.Обновленный jsFiddle находится здесь: http://www.jsfiddle.net/jXHTJ/3/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...