Voglio disattivare un pulsante per un orario specifico. Come lo posso fare?jquery disabilita un pulsante per un'ora specifica
risposta
Disabilitare il pulsante e quindi utilizzare setTimeout per eseguire una funzione che abilita il pulsante dopo alcuni secondi.
$('#some-button').attr("disabled", "disabled");
setTimeout('enableButton()', 5000);
function enableButton(){
$('#some-button').removeAttr('disabled');
}
Dal momento che questo è probabile che sia un compito come si potrebbe ripetere, penso che il modo migliore per farlo sarebbe quello di estendere jQuery in questo modo:
$.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);
});
};
Questo vi permetterà di chiamare una funzione su un insieme di elementi abbinati che li disabiliterà temporaneamente. Come è scritto, puoi semplicemente chiamare la funzione, e gli elementi selezionati saranno disabilitati per 5 secondi. Si dovrebbe fare in questo modo:
$('#some-button').timedDisable();
È possibile regolare l'impostazione tempo predefinito modificando il 5000
nella seguente riga:
if (time == null) { time = 5000; }
si può opzionalmente passare in un valore di tempo in millisecondi per controllare come a lungo gli elementi saranno disabilitati per. Per esempio:
$('#some-button').timedDisable(1000);
Ecco una demo di lavoro: http://jsfiddle.net/fG2ES/
potrebbe non essere la soluzione più elegante, ma ho pensato di giocare con le code di jQuery su questo ...
$.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);
});
Questo è dove ho lavorato fuori ... http://jsfiddle.net/T9QJM/
E, per riferimento, How do I chain or queue custom functions using JQuery?
Prova questo.
(function(){
$('button').on('click',function(){
var $this=$(this);
$this
.attr('disabled','disabled');
setTimeout(function() {
$this.removeAttr('disabled');
}, 3000);
});
})();
è possibile trovare un esempio di lavoro qui http://jsfiddle.net/informativejavascript/AMqb5/
- 1. disabilita pulsante di invio utilizzando jQuery
- 2. Pulsante Disabilita dopo invio con jQuery
- 3. Pulsante disabilita e abilita
- 4. ExtJS 4 - Grid - Disabilita la selezione righe per colonna specifica
- 5. Seleziona2 disabilita/abilita l'opzione specifica
- 6. Disabilita pulsante di chiusura in jQuery UI Dialog
- 7. Disabilita modulo invio automatico sul pulsante clic
- 8. Pulsante Indietro Android per attività specifica
- 9. Android - Disabilita pulsante Indietro dispositivo
- 10. Pulsante Disabilita mentre Richiesta AJAX
- 11. Disabilita jQuery Massoneria
- 12. disabilita l'autenticazione http per la specifica posizione riscritta
- 13. jQuery - Disabilita campi modulo
- 14. Disabilita Esc close per colorbox
- 15. Pulsante jQuery UI: come sovrascrivere le classi utilizzate per un singolo pulsante?
- 16. Specifica jQuery per bootstrap nel pacchetto web
- 17. Jquery DataTables, ordina per colonna specifica?
- 18. Pulsante Disabilita al momento del clic
- 19. Disabilita il pulsante Home nell'app Home?
- 20. Disabilita il pulsante per l'avanzamento dell'aggiornamento in ASP.net Ajax
- 21. Disabilita il pulsante di chiusura del Bootbox
- 22. jQuery convalidare solo se viene selezionato un pulsante di opzione specifica
- 23. Disabilita il pulsante "ricarica griglia" in nav
- 24. Disabilita/Abilita pulsante Indietro dalla vista dettagli
- 25. Abilita/disabilita asp: validatori utilizzando jquery
- 26. impostazione IsEditable = false per l'elemento disabilita il pulsante salva/chiudi ma non salva il pulsante?
- 27. Separare una funzione specifica jQuery
- 28. schede jQuery selezione scheda specifica
- 29. run lightbox in jQuery per fare clic su un pulsante
- 30. ottiene il valore per un pulsante di input utilizzando jquery
Questo non funziona: http://jsfiddle.net/RPQmM/ Credo che il setTimeout è chiamata sbagliata. – Ender
@Ender Non funziona perché la funzione 'enableButton' non è nell'ambito globale che è richiesta dal * modo * in cui viene chiamato 'setTimeout'. Vedi questo: http://jsfiddle.net/RPQmM/1/ –