Примечание: Я знаю, что это не правильный ответ сейчас, но оставлю его здесь для дальнейшего использования заинтересованными лицами. Пожалуйста, смотрите ответ Райноса для правильного решения.
Посмотрев на ваш код, если вы закомментируете строку с чистым интервалом, тогда она начинает работать для первого поля ... Я думаю, что когда у вас есть более одного setinterval, они не очень хорошо играют с другие. Вероятно, все это связано с замыканиями и ограничениями и тому подобным, но я часто теряюсь в этих областях, поэтому не могу дать вам точного решения. Надеемся, что это приведет вас на правильный путь, а если нет, то и другой пользователь даст вам более полный ответ. :)
Редактировать, чтобы добавить: Мне приходит в голову, что решение может состоять в том, чтобы сохранить ссылку на таймер на самом элементе. Нечто подобное $this.data('timer',ti)
или подобное. Возможно, вам придется немного поиграть, но это должно гарантировать, что каждый таймер будет в целости и сохранности и сам по себе, и когда вы его извлекаете ($this.data('timer'
), вы можете быть уверены, что нет шансов ошибиться. :)