JQuery отправить форму, если IF - PullRequest
0 голосов
/ 15 ноября 2010

Эй, ребята, У меня есть замечательные сценарии, с которыми мне помогли переполнение стека, за исключением одной важной функции, которая мне нужна.

Это игра, в которой пользователь выбирает номер (вводя этот номер в текстовое поле), а затем нажимает кнопку воспроизведения. После того, как они нажмут кнопку воспроизведения, появится ряд чисел, а затем они должны нажать на число, соответствующее их номеру.

Используемый мной скрипт запроса подсчитывает, сколько раз они набирают номер и сколько раз они пропускают номер. Посмотрите на сценарий в действии здесь. текст ссылки

Теперь, что мне нужно, это отправить счет (попадания и пропуски) в базу данных после 3 промахов, чтобы я мог сохранить высокий балл. Есть идеи? Вот сценарий.

var hitCount = 0,
missCount = 0;

function IsNumeric(n) {
return !isNaN(n);
}

$("#getit").click(function() {
var li = [],
    intervals = 0,
    n = parseInt($('#MyNumber').val());

if (IsNumeric(n)) {
    setInterval(function() {
        li[intervals++ % li.length].text(Math.random() > .1 ? Math.floor(Math.random()        * (10 + n) + (n / 2)) : n).attr('class', '');
    }, <?php echo $time ?>);
}

$('#randomnumber').empty();

for (var i = 0; i < 5; i++) {
    li.push($('<li />').click(function() {
        var $this = $(this);

        if (!$this.hasClass('clicked')) {
            if (parseInt($this.text(), 10) === n) {
                $this.addClass('correct');
                $('#hitcount').text(++hitCount);
            } else {
                $this.addClass('wrong');
                $('#misscount').text(++missCount);
            }
        }

        $this.addClass('clicked');
    }).appendTo('#randomnumber'));
}

return false;
});

Ответы [ 2 ]

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

Я обновил вашу проблему здесь .

После обновления состояния Проверьте значение missCount, если оно больше или равно 3, затем остановите воспроизведение (очистите интервал и отмените привязку события), затем сохраните значение с помощью запроса ajax.

Я изменил обработку события, чтобы использовать делегирование события вместо события прямого щелчка по элементам <li>. Делегирование событий лучше в тех случаях, когда есть много элементов, к которым мы должны привязать определенное событие.

0 голосов
/ 15 ноября 2010

Я обновил вашу скрипку с решением.Отметьте http://jsfiddle.net/DHPQT/2/.

Я пометил все новое с комментарием в виде

//new ....

Главное, чтобы после

$('#misscount').text(++missCount);

проверялось,missCount равно 3, и если да, остановите игру и отправьте что-нибудь

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