jQuery: catch try {} la función de llamada no funciona?
-
26-09-2019 - |
Pregunta
Estoy teniendo una gran cantidad de código JavaScript en mi página y estoy usando Typekit. Con el fin de hacer mi trabajo correctamente la página (rejilla y esas cosas) que estoy usando los nuevos eventos de fuentes Typekit.
Es simplemente una instrucción try y catch que comprueba si las fuentes se cargan o no. Sin embargo por alguna razón no estoy consiguiendo. Voy a llamar a la función setGrid()
si se cargan las fuentes Typekit, pero por ejemplo, iPad o iPhone no soporta que aún y por eso mi página no se muestra correctamente cuando no llamar a la función setGrid()
.
De todos modos, quiero llamar a la función en el estado de error, así que si la página se llama en el iPhone, la página funciona sin fuentes web también.
try {
Typekit.load({
loading: function() { },
active: function() { setGrid(); },
inactive: function() { }
})
} catch(e) {
alert('error'); //works
setGrid(); //doesn't get called
}
Sin embargo, las obras alert
, la función setGrid()
no recibe llamada.
Algunas ideas?
editar: las miradas de función así:
var setGrid = function () {
$('#header, #footer').fadeIn(500);
return $("#grid").vgrid({
easeing: "easeOutQuint",
time: 800,
delay: 60
});
};
Solución
Trate de lo que es la función "real", como esto:
function setGrid() {
$('#header, #footer').fadeIn(500);
return $("#grid").vgrid({
easeing: "easeOutQuint",
time: 800,
delay: 60
});
};
Otros consejos
La función se consiga llamar, pero simplemente no funciona como se esperaba que te hace pensar que no está recibiendo llamadas. Se puede ver que cada vez es llamado por la adición de una alerta como la primera línea de setGrid.
¿Puede usted:
- try / catch alrededor
setGrid
, también -
alert
después setGrid para confirmar que se está haciendo a travéssetGrid