Meteor或Iron Router会干扰锚标记上的jQuery事件吗?

时间:2014-04-23 14:34:18

标签: javascript-events meteor iron-router

我正在使用第三方主题,该主题使用锚标记在点击时切换左侧菜单的可见性。一切正常,直到我开始将我的HTML细分为部分并安装Iron Router。我可能只是在某个地方忽略了一个bug,或者Meteor / IronRouter是否要求我做一些特定的事情来处理锚标签上的所有jQuery事件?我是否需要更改所有jQuery事件以了解页面更新(通过on())? 此特定元素没有href=属性,我不希望更改此网址。

2 个答案:

答案 0 :(得分:1)

Iron Router拦截链接上的点击事件,以便它自己处理它们。这肯定会破坏插件的功能。如果您的主题允许通过其他元素处理更改,那么这是完美的解决方案。可以通过点击按钮甚至div来管理切换菜单可见性等事情。

如果无法更改切换元素,则需要告知Iron Router不要拦截该特定锚点。有关详细信息,请参阅this question

答案 1 :(得分:0)

这里的关键词被证明是“将我的HTML细分为部分”,因为我的问题与Iron Router无关。一旦开始将HTML放入模板中,就不能依赖写入主题的jQuery来了解Meteor的本质页面更新。例如,我的主题包含以下代码:

$('.menutoggle').click(function(){
    // do things
});

实际上必须更改为使用on()函数:

$(document).on('click', '.menutoggle', function() {
    // do things
});

或者更好的是,在我的模板中注册:

Template.mypartialname.events({
   'click .menutoggle': function() {
        // do things
   }
});