阻止默认的浏览器操作,但允许流星中的库代码

prevent default browser action but allow library code in meteor

本文关键字:流星 代码 许流星 默认 浏览器 操作      更新时间:2023-09-26

我将啤酒厂的网站转换为使用流星。在转换过程中,我在集成一些库代码时遇到了一个错误。原始站点使用lightbox2http://lokeshdhakar.com/projects/lightbox2/弹出我们设计的图形的模式。

在流星版本中,模态看起来像是即将加载,但随后只是直接导航到该模态应该显示的图像资源。点击"查看酿造图"http://twbrewing.meteor.com/beers看看问题在起作用。

在我看来,库代码似乎正在工作,但由于某种原因,并不能阻止默认的浏览器操作。为此,我尝试在click事件上使用preventDefault(),但之后什么也没发生。想法?

{{#constant}}...{{/constant}}中包装HTML,并在模板呈现函数中运行任何灯箱代码,例如

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

我真的不知道lightbox函数叫什么。。。这要么是他们在文档中告诉你在页面加载时运行的东西,要么是封装在源代码中的$(document).ready()调用中的东西。更好的是,如果有一个API调用直接在元素上运行(比如$('img').lightbox()$('img').each(function(el) { lightbox(el) }).

对不起,我对灯箱不太熟悉,但这是你需要的策略,也是你需要寻找的:)

请注意,渲染函数也是在重新渲染时调用的。这对大多数库来说都很好,但如果你注意到任何奇怪的行为,你需要添加一些逻辑来确保相关链接不会被处理两次(要么使用.data布尔值,要么销毁并重新创建包装器)。