Sto tentando di chiudere automaticamente la finestra di dialogo tre secondi dopo l'apertura. Ho provato i seguenti metodi:Finestra di dialogo dell'interfaccia utente jQuery Auto-Close con setTimeout
setTimeout($("#mydialog").dialog('close'), 3000);
Qui è in context:
$("#acknowledged-dialog").dialog({
height: 140,
modal: true
});
setTimeout($("#acknowledged-dialog").dialog('close'), 3000);
Ma con questo metodo, non ha nemmeno mostrare! Immagino che il metodo close venga chiamato immediatamente dopo che è stato mostrato nella pagina. Il registro non mostra errori.
Ho anche provato il legame con l'evento dialogopen:
$("#acknowledged-dialog").bind('dialogopen', function(event, ui) {
setTimeout($(this).dialog('close'), 3000);
});
$("#acknowledged-dialog").dialog({
height: 140,
modal: true
});
Gli spettacoli di dialogo, ma non lo fa chiusura automatica. Nessun errore nei log qui.
Non riesco a utilizzare "questo" nell'argomento $ in setTimeout?
e no, a meno che non seguiate @toby e includiate la funzione, ho trovato che non posso usare 'this' nel codice precedente per setTimeout. – DefyGravity
Volevo solo sottolineare che, in situazioni in cui quella stringa non funziona (come quando stavo creando un'estensione di Chrome), puoi semplicemente trasformare la stringa in una funzione anonima. –
Si noti che se l'utente chiude manualmente la finestra di dialogo prima del timeout, il timer nel codice sopra continuerà a funzionare e tenterà di chiudere la finestra di dialogo una seconda volta - questo è ok se la finestra di dialogo non viene distrutta. Ma se la finestra di dialogo viene visualizzata una seconda volta prima del primo timeout, il primo timer chiuderà la finestra di dialogo in anticipo. –