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