簡體   English   中英

阻止默認的瀏覽器操作,但允許流星中的庫代碼

[英]prevent default browser action but allow library code in meteor

我轉換了啤酒廠的網站以使用流星。 在轉換過程中,我遇到了一些庫代碼集成中的錯誤。 原始站點使用lightbox2 http://lokeshdhakar.com/projects/lightbox2/彈出我們設計的圖形的模態。

在流星版本中,模態看起來像它即將加載,但隨后直接導航到該模態應該顯示的圖像資產。 單擊http://twbrewing.meteor.com/beers上的“查看釀造圖”以查看實際問題。

在我看來,庫代碼正在運行,但由於某種原因不會阻止默認的瀏覽器操作。 我嘗試在click事件上使用preventDefault(),但是什么都沒有發生。 想法?

將HTML包裝在{{#constant}}...{{/constant}}並在模板渲染函數中運行所有燈箱代碼,例如

Template.pictures.rendered = function() {
   lightBoxInit();
}

我實際上不知道lightbox函數是什么...它要么是他們會在文檔中告訴您在pageload上運行的東西,要么是包裝在源代碼中的$(document).ready()調用中。 甚至更好的是,如果有一個API調用可以直接在元素上運行(類似於$('img').lightbox()$('img').each(function(el) { lightbox(el) })

抱歉,我對燈箱不太熟悉,但這是您需要的策略以及需要尋找的東西:)

請注意,渲染函數也在重新渲染時被調用。 對於大多數庫來說,這很好,但是如果您發現任何奇怪的行為,則需要添加一些邏輯以確保不對相關鏈接進行兩次處理(通過使用.data布爾值或通過破壞並重新創建包裝器)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM