繁体   English   中英

jQuery:try catch {call function}不起作用?

[英]jQuery: try catch { call function } does not work?

我的页面上有很多JavaScript,而且我正在使用typekit。 为了使我的页面正常工作(网格和东西)我正在使用新的typekit字体事件。

它只是一个try和catch语句,用于检查字体是否加载。 但不知怎的,我没有得到它。 如果加载了typekit字体,我正在调用setGrid()函数,但是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的第一行来查看它是否被调用。

jsfiddle链接

你能:

  • 尝试/捕捉setGrid
  • 在setGrid之后发出alert以确认它正在通过setGrid

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM