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

时间:2013-07-21 06:48:16

标签: javascript meteor lightbox2

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

在流星版本中,模态看起来就像要加载一样,然后直接导航到模式应该显示的图像资源。点击http://twbrewing.meteor.com/beers上的“查看Brew图表”,查看运行中的问题。

对我来说,它看起来像库代码是有效的,但由于某种原因不会阻止默认的浏览器操作。我尝试在click事件上使用preventDefault(),但后来没有任何反应。想法?

1 个答案:

答案 0 :(得分:1)

{{#constant}}...{{/constant}}中包装HTML并在模板渲染功能中运行任何灯箱代码,例如

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

我实际上并不知道灯箱功能被调用了什么......它们要么在文档中告诉你要在页面加载上运行,要么包含在源代码中的$(document).ready()调用中。更好的是,如果有一个API调用直接在元素上运行(类似$('img').lightbox()$('img').each(function(el) { lightbox(el) })

抱歉,我对灯箱不是很熟悉,但这是您需要的策略以及您需要寻找的内容:)

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