J’ai un problème étrange avec IE8 et les versions antérieures: mon compte à rebours, qui n’est censé être déclenché qu’une seule fois, continue de se déclencher, ce qui n’est pas le cas des navigateurs modernes. Est-ce qu’il y a un moyen de réparer ceci? Merci! Le but est d’avoir un compte à rebours une fois l’entrée sélectionnée.
Code:
$("input").focus (function counter() { $("input").unbind('focus', counter); var count = 60; countdown = setInterval(function(){ $(".clock p").html(count); if (count == 0) { $(".while-ticking").fadeOut(1000); $(".countdown-finished").fadeIn(1000); } else { count--; } }, 1000); });
Essayez de cette façon:
$("input").focus(function() { counter(60) }); function counter(count) { $("input").unbind('focus'); setTimeout(function(){ $(".clock p").html(count); if (count == 0) { $(".while-ticking").fadeOut(1000); $(".countdown-finished").fadeIn(1000); } else { counter(count--); } }, 1000); }
Edit: Vous devez créer une boucle pour le compte à rebours. Donc, ce que je fais en gros, c’est de commencer avec 60 secondes d’attente et de rappeler la fonction à nouveau, mais ensuite avec 59 .. etc. etc.
Edit: je l’ai testé ce qui suit et cela a fonctionné 🙂 très bien compter à rebours