2014-02-18 27 views
1

我已經通過渲染模板實現了jPanel菜單,這很好,直到路線改變,然後菜單停止工作。這裏是我用來喚起插件的代碼。jQuery小部件(jPanelMenu)停止流星路線變化工作

Template.mobileMenu.rendered = function(){ 
    var jPM = $.jPanelMenu({ 
     menu: '#mobile-menu', 
     trigger: '.menu-trigger' 
    }); 
    jPM.on(); 
    }; 

該模板加載在頁腳的所有頁面上。我認爲它需要重新運行路線變化,或防止重新運行。我不確定哪個。感謝您的任何提示。

回答

0

解決的辦法是把它包在如果沒有渲染,以防止它在模板/路線更改時重新渲染。

Template.mobileMenu.rendered = function(){ 
    if (!this.rendered){ 

    var jPM = $.jPanelMenu({ 
     menu: '#mobile-menu', 
     trigger: '.menu-trigger' 
    }); 
    jPM.on(); 

    this.rendered = true; 
    } 
}; 
0

這聽起來很像許多人使用第三方UI組件時遇到的問題。我放在一起可能會有所幫助使用模態對話框組件的工作示例:

https://github.com/alanning/meteor-modal-example

此外,我要指出的是,新的流星UI渲染系統,「火焰」,要消除這些種的問題。我希望Blaze很快就會發布。

(對於那些遊客從未來的到來,在寫流星v0.7.0.1是最新版本的時間。)

+0

我看到您正在通過模板上的腳本標記加載多選的圖書館,這是否有幫助? – bmx269

+0

這是一個優化;在手機(不是平板電腦)上,使用本地多選元素而不是自定義loudev。它不應該讓你的jPanel菜單工作,除非uglifyJS壓縮器中存在某種流星使用的bug,如果縮小/壓縮,會導致jpanel無法工作。 – alanning

+0

我有更多的信息,在第一次加載jpanel菜單正確加載後。但是在路由更改時,代碼會重新運行,然後加載第二個菜單,從而中斷腳本。 – bmx269