Создайте секундомер jquery, который начинается с фокусировки пользователя, останавливается при отключении фокуса и запускает новый таймер

Я ' m в процессе создания простого веб-приложения, которое позволяет пользователю задавать вопросы по математическим задачам. Пользователь сначала выбирает тип задачи, которую он хотел бы решить, а затем, сколько задач он хотел бы решить.

Поскольку пользователь сталкивается с проблемами, я хотел бы определить время, которое потребуется для решения каждой проблемы. Это код, который отображает проблемы на странице:

function displayMult ($i)
{
echo '<table class="basic">';
    for($k=0; $k < $i; ++$k) // display problems
    {
        $user_response[$k] = 'user_response' . $k ;
        echo '<tr>';
        echo '<td>' . number_format($_SESSION['mult_one'][$k]) . '</td>';
        echo '<td>'. ' x ' . '</td>';
        echo '<td>' . number_format($_SESSION['mult_two'][$k]) . '</td>';
        echo '<td>' . ' =   <input type="text" class="field" name="user_response' . $k . '"' . 'id="u_r' . $k . '" />' . '</td>';
        echo '<td id="timer_' . $k . '">test</td>';
        echo '</tr>';
    }
echo '</table>';
}

И это jQuery, который у меня есть, который учитывает ответы пользователя. Проблема, с которой я столкнулся, заключается в том, что 1) я не могу понять, как писать, чтобы всегда выбирать правильный идентификатор таймера для передачи в функцию секундомера и 2) остановить старый таймер и начать новый. Текущий код будет определять время только для первого вопроса, а затем правильно останавливать таймер, когда пользователь щелкает поле ввода для следующего вопроса.

$(document).ready(function() {
    $('.field').focus(stopwatch('#timer_0'));
});

function stopwatch(container) {
  var interval;
  return function() {
    if (interval) {
       clearInterval(interval); 
    }
    else{
        var count = 0;
        interval = setInterval(function() {
            count++;
            $(container).html(count + ' seconds');
        }, 1000);
    }
  };
}

I ' m новичок в jquery, поэтому мы будем благодарны за любую помощь и понимание! Заранее спасибо.

5
задан john k 22 May 2011 в 20:16
поделиться