jQuery: try catch {} Anruffunktion funktioniert nicht?
-
26-09-2019 - |
Frage
Ich bin auf meiner Seite viel JavaScript mit und ich bin mit Typekit. Um meine Seite korrekt arbeiten zu machen (Grid und Sachen) Ich verwende die neuen Typekit Schrift Ereignisse.
Es ist einfach ein Versuch und catch-Anweisung, dass überprüft, ob Schriftarten geladen werden oder nicht. Ich bekomme es aber irgendwie nicht. Ich rufe die setGrid()
Funktion, wenn Typekit-Schriften geladen sind, aber z iPad oder iPhone nicht unterstützt, dass noch nicht und so meine Seite nicht richtig angezeigt bekommt, wenn ich die setGrid()
Funktion nicht aufrufen.
Wie auch immer, ich will auch die Funktion in der Fehlerfeststellung nennen, so dass, wenn die Seite auf dem iPhone genannt wird, die Seite funktioniert ohne Webfonts auch.
try {
Typekit.load({
loading: function() { },
active: function() { setGrid(); },
inactive: function() { }
})
} catch(e) {
alert('error'); //works
setGrid(); //doesn't get called
}
Doch die alert
Werke, wird die setGrid()
Funktion nicht aufgerufen.
Irgendwelche Ideen?
edit: die Funktion sieht wie folgt aus:
var setGrid = function () {
$('#header, #footer').fadeIn(500);
return $("#grid").vgrid({
easeing: "easeOutQuint",
time: 800,
delay: 60
});
};
Lösung
Versuchen Sie es "echte" Funktion machen, wie folgt aus:
function setGrid() {
$('#header, #footer').fadeIn(500);
return $("#grid").vgrid({
easeing: "easeOutQuint",
time: 800,
delay: 60
});
};
Andere Tipps
Die Funktion wird aufgerufen, aber es funktioniert einfach nicht wie erwartet, wodurch Sie denken, dass es nicht immer genannt. Sie können sehen, dass es durch Hinzufügen einer Benachrichtigung, die erste Zeile des setGrid genannt zu werden.
Können Sie:
- try / catch um
setGrid
auch -
alert
nach setGrid bestätigen es durchsetGrid
bekommen