Je souhaite désactiver un bouton pour une durée spécifique. Comment puis je faire ça?Désactivation d'un bouton pendant un certain temps
Répondre
Désactivez le bouton, puis utilisez setTimeout pour exécuter une fonction qui active le bouton après quelques secondes.
$('#some-button').attr("disabled", "disabled");
setTimeout('enableButton()', 5000);
function enableButton(){
$('#some-button').removeAttr('disabled');
}
Comme il est susceptible d'être une tâche que vous voudrez peut-être répéter, je pense que la meilleure façon de le faire serait d'étendre jQuery comme ceci:
$.fn.timedDisable = function(time) {
if (time == null) { time = 5000; }
return $(this).each(function() {
$(this).attr('disabled', 'disabled');
var disabledElem = $(this);
setTimeout(function() {
disabledElem.removeAttr('disabled');
}, time);
});
};
Cela vous permettra d'appeler une fonction sur un ensemble d'éléments correspondants qui les désactivera temporairement. Comme il est écrit, vous pouvez simplement appeler la fonction, et les éléments sélectionnés seront désactivés pendant 5 secondes. Vous faire comme ceci:
$('#some-button').timedDisable();
Vous pouvez régler le réglage de l'heure par défaut en modifiant la 5000
dans la ligne suivante:
if (time == null) { time = 5000; }
Vous pouvez éventuellement passer une valeur de temps en millisecondes pour contrôler la longtemps les éléments seront désactivés pour. Par exemple:
$('#some-button').timedDisable(1000);
Voici une démonstration de travail: http://jsfiddle.net/fG2ES/
peut-être pas la solution la plus élégante, mais je pensais que je jouerais avec les files d'attente jQuery sur celui-ci ...
$.fn.disableFor = function (time) {
var el = this, qname = 'disqueue';
el.queue(qname, function() {
el.attr('disabled', 'disabled');
setTimeout(function() {
el.dequeue(qname);
}, time || 3000);
})
.queue(qname, function() {
el.removeAttr('disabled');
})
.dequeue(qname);
};
$('#btn').click(function() {
$(this).disableFor(2000);
});
C'est là que je travaillais dehors ... http://jsfiddle.net/T9QJM/
Et, pour référence, How do I chain or queue custom functions using JQuery?
Essayez ceci.
(function(){
$('button').on('click',function(){
var $this=$(this);
$this
.attr('disabled','disabled');
setTimeout(function() {
$this.removeAttr('disabled');
}, 3000);
});
})();
Vous pouvez trouver un exemple de travail ici http://jsfiddle.net/informativejavascript/AMqb5/
- 1. Verrouiller un bouton après avoir appuyé pendant un certain temps
- 2. L'application se bloque pendant un certain temps
- 3. Appel d'une fonction pendant un certain temps
- 4. Comment afficher les éléments créés dynamiquement pendant un certain temps?
- 5. délai jquery télécharger le processus pendant un certain temps
- 6. Exécuter une boucle infinie pendant un certain temps dans c
- 7. meilleure façon d'arrêter ondraw() opengl pendant un certain temps
- 8. Verrouiller la table SQL pendant un certain temps
- 9. jquery activer un bouton après un certain temps
- 10. Application Gel après un certain temps d'inactivité
- 11. boucle avec un certain temps
- 12. Existe-t-il un moyen de supprimer un bouton UIalertView après un certain temps?
- 13. Comment désactiver les événements pendant un certain temps en Javascript ou jQuery
- 14. Désactivation temporisée du bouton dans pygtk
- 15. L'application VB6 se bloque pendant un certain temps sur Windows Server 2008 SP1
- 16. Erreur WMI après un certain temps
- 17. Conserver un objet dans la mémoire pendant un certain temps (application C# WinForms)
- 18. QT: faire une fonction de pause à un moment donné pendant un certain temps
- 19. Désactivation du bouton d'édition NavBar
- 20. Suspendre l'arrêt du système pendant un certain temps en C#/VB.net
- 21. Délai de connexion ASP.NET après avoir été inactif pendant un certain temps
- 22. Le vol stationnaire de Jquery ne peut avoir d'effet que pendant un certain temps
- 23. L'API sendinput peut-elle simuler le maintien d'une touche du clavier pendant un certain temps?
- 24. Exécutez le code pendant un certain laps de temps et tuez si nécessaire
- 25. Masquer l'élément div avec jQuery, lorsque la souris ne bouge pas pendant un certain temps?
- 26. Kill Process après un certain temps + C#
- 27. WebView s'écraser après un certain temps
- 28. Rediriger site Web après un certain temps
- 29. flash film s'arrête après un certain temps?
- 30. Mutex prend un certain temps à débloquer
Cela ne fonctionne pas: http://jsfiddle.net/RPQmM/ Je crois que le setTimeout est appelé tort. – Ender
@Ender Cela ne fonctionne pas parce que votre fonction 'enableButton' n'est pas dans la portée globale qui est requise par le * way *' setTimeout' est appelé. Voir ceci: http://jsfiddle.net/RPQmM/1/ –