jQuery: try catch {} funzione di chiamata non funziona?
-
26-09-2019 - |
Domanda
Sto avendo un sacco di JavaScript sulla mia pagina e sto usando Typekit. Al fine di rendere il mio lavoro pagina correttamente (griglia e roba) Sto utilizzando i nuovi eventi di carattere Typekit.
E 'semplicemente un'istruzione try e catch che controlla se i caratteri vengono caricate o meno. Tuttavia in qualche modo Non ricevo esso. Sto chiamando la funzione setGrid()
se i caratteri Typekit vengono caricati, ma per esempio iPad o iPhone non supporta ancora e così la mia pagina non viene correttamente dimostrato che quando io non chiamo la funzione setGrid()
.
In ogni caso, voglio chiamare la funzione nella dichiarazione errore come bene, quindi se la pagina si chiama su iPhone, la pagina funziona senza webfonts pure.
try {
Typekit.load({
loading: function() { },
active: function() { setGrid(); },
inactive: function() { }
})
} catch(e) {
alert('error'); //works
setGrid(); //doesn't get called
}
Tuttavia, i lavori alert
, la funzione setGrid()
non ottiene chiamato.
Tutte le idee?
modifica: gli sguardi funzione del genere:
var setGrid = function () {
$('#header, #footer').fadeIn(500);
return $("#grid").vgrid({
easeing: "easeOutQuint",
time: 800,
delay: 60
});
};
Soluzione
Prova il che rende la funzione "reale", in questo modo:
function setGrid() {
$('#header, #footer').fadeIn(500);
return $("#grid").vgrid({
easeing: "easeOutQuint",
time: 800,
delay: 60
});
};
Altri suggerimenti
La funzione venga chiamata, ma semplicemente non funziona come vi aspettavate che ti fa pensare che non è sempre chiamato. Si può vedere che è sempre chiamato con l'aggiunta di un avviso come la prima linea di setGrid.
Can voi:
- try / catch intorno
setGrid
, troppo -
alert
dopo setGrid per confermare la cosa si fa attraversosetGrid