我使用sammy.js进行导航,我必须处理更改链接后发生的事件。例如,用户点击“#/ contact”链接,因此,在成功导航后,我希望触发我的事件。我找到了“after”属性并尝试插入此代码:
this.after('#/contact', function () {
//my code
});
但它没有执行。 我做错了什么?
事实上,问题来自以下情况:
我有一个包含2个标签的页面:主页和联系人。联系人包含谷歌地图。
如果用户首先进入联系人,则谷歌地图已正确加载,但如果用户进入“主页”选项卡然后切换到“联系人”选项卡,则谷歌地图未正确加载,我只能看到一小块地图左上角。
有什么建议吗?
提前谢谢!
答案 0 :(得分:3)
我建议使用自定义事件来解决此问题:
var app = $.sammy(function() {
this.get('#/contact', function() {
this.trigger('myEvent', { myData: 'This a contact!' });
});
});
或者,如果您想收听已经运行的所有路线,请尝试:
this.bind('run-route', function() {
console.log("I got routed");
}
答案 1 :(得分:0)
如果我理解你的话,你只需要这样做:
location.hash = "contact";
路线事件将会触发。