2015-05-20 23 views
1

我有以下代碼:如何讓功能在每次頁面刷新流星時運行?

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

我還使用jQuery的scrollto包流星。它在頁面加載時僅觸發一次,但是當我刷新它時再也不會觸發。我知道onRendered只在元素改變時運行,但是我應該使用什麼呢?我試圖把這個代碼放在Meteor.startup()和$(window).load()中,但它也不起作用。 我通過添加setTimeout()函數修復了它,但如果用戶的網絡連接速度很慢?它不會開火。任何解決方案?

+0

jQuery的,這是'$(窗口).load()'而不是'$(窗口) .onload()'。你可以嘗試使用它,或者,如果你不需要等待像加載圖像這樣的東西,你可以嘗試使用'$(document).ready()'。 –

+0

'onRendered' *中的代碼*應該*在瀏覽器刷新後運行。我們在這裏談論什麼樣的「刷新」? – SylvainB

+0

頁面刷新。我也試過$(document).ready(),它不起作用 – Revels

回答

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 

在你腦海中的代碼,例如客戶端/ main.html中

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

或者,如果你想保留的lib在你的應用程序,download it並把它在公共/ jQuery的scrollto/,然後在頭:

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

我嘗試了你提供的所有東西,它不工作:'load()'方法即使'setTimeout()'也不起作用。悲傷 – Revels

+0

有應用程序http://itschat.meteor.com也許它會幫助 – Revels

+0

奇怪的如何有兩個頭和兩個機構... – SylvainB

相關問題