jQuery: попробуйте поймать функцию call} не работает?
-
26-09-2019 - |
Вопрос
У меня много JavaScript на моей странице, и я использую typekit. Чтобы заставить мою страницу работать правильно (сетка и вещи), я использую новые события шрифта Typekit.
Это просто попытка и исправить заявление, которое проверяет, загрузка шрифтов или нет. Однако как-то я не понимаю. Я звоню setGrid()
Функция, если загружены шрифты Typekit, но, например, iPad или iPhone не поддерживают это, и поэтому моя страница не будет правильно отображаться, когда я не называю setGrid()
функция.
Во всяком случае, я хочу позвонить в функцию в операторе ошибки, поэтому, если страница вызывается на iPhone, страница работает без WebFonts.
try {
Typekit.load({
loading: function() { },
active: function() { setGrid(); },
inactive: function() { }
})
} catch(e) {
alert('error'); //works
setGrid(); //doesn't get called
}
Однако alert
работает setGrid()
Функция не вызывается. Есть идеи?
Редактировать: функция выглядит так:
var setGrid = function () {
$('#header, #footer').fadeIn(500);
return $("#grid").vgrid({
easeing: "easeOutQuint",
time: 800,
delay: 60
});
};
Решение
Попробуйте сделать это «реальной» функцией, как это:
function setGrid() {
$('#header, #footer').fadeIn(500);
return $("#grid").vgrid({
easeing: "easeOutQuint",
time: 800,
delay: 60
});
};
Другие советы
Функция называется, но она просто не работает, поскольку вы ожидаете, что вы думаете, что это не вызывается. Вы можете видеть, что он вызывается, добавив предупреждение в качестве первой строки SETGRID.
Не могли бы вы:
- Попробуйте / поймать
setGrid
, слишком alert
После setgrid, чтобы подтвердить, что он проходит черезsetGrid