我使用sammy.js进行导航,我必须处理更改链接后发生的事件。例如,用户单击"#/联系人"链接,因此,在成功导航后,我希望触发我的事件。我找到了"after"属性并尝试插入此代码:
this.after('#/contact', function () {
//my code
});
但它没有执行。我做错了什么?
事实上,问题来自以下情况:
我有一个包含 2 个选项卡的页面:主页和联系人。联系人包含谷歌地图。
如果用户首先转到联系人,谷歌地图已正确加载,但如果用户进入"主页"选项卡,然后切换到"联系人"选项卡,则谷歌地图未正确加载,我只能在左上角看到一小块地图。
有什么建议吗?
提前谢谢你!
我建议使用自定义事件来处理这个问题:
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");
}
如果我理解正确,你只需要这样做:
location.hash = "contact";
并且路由事件将触发。