每次页面刷新流星时如何使功能运行?

时间:2015-05-20 07:52:28

标签: javascript meteor

我有以下代码:

Template.home.onRendered(function() {
        var scrollElem = $("#scroll");
        scrollElem.scrollTo("max", 500);
})

我也在为meteor使用jquery-scrollto包。它只在页面加载时触发一次,但是当我刷新它时再也不会触发。我知道onRendered仅在元素被更改时运行但我应该使用什么呢?我试图将此代码放在Meteor.startup()和$(window).load()中,但它也不起作用。 我通过添加setTimeout()函数修复了它,但是如果用户的互联网连接速度慢怎么办?它不会开火。对此有何解决方案?

1 个答案:

答案 0 :(得分:1)

如果尚未执行此操作,请尝试使用the newer version of the package

可能您的#scroll元素尚未加载。您可以尝试使用load()方法:

Template.home.onRendered(function() {
        var scrollElem = $("#scroll");
        scrollElem.load(function () {
          scrollElem.scrollTo("max", 500);
        });
})

如果仍然无效,请尝试直接使用插件,而不是使用纯中介流星包。卸载软件包:

meteor remove johnantoni:meteor-scrollto

在您的头文代码中,例如 client / main.html

<head>
  <script src="//cdn.jsdelivr.net/jquery.scrollto/2.1.0/jquery.scrollTo.min.js"></script>
</head>

或者,如果你想在你的应用程序中保留lib,download it并将其放在 public / jquery-scrollto / 中,那么在头部:

<head>
  <script src="/jquery-scrollto/jquery.scrollTo.min.js"></script>
</head>