3

我使用 sammy.js 进行导航,我必须处理更改链接后发生的事件。例如,用户单击“#/contact”链接,因此,在成功导航后,我希望触发我的事件。我找到了“after”属性并尝试插入此代码:

this.after('#/contact', function () {
    //my code
});

但它没有执行。我究竟做错了什么?

其实问题出在以下情况:

我有一个带有 2 个选项卡的页面:主页和联系人。联系人包含谷歌地图。

如果用户首先转到联系人,则谷歌地图已正确加载,但如果用户进入主页选项卡然后切换到联系人选项卡,则谷歌地图未正确加载,我只能在左上角看到一小块地图角落。

有什么建议么?

先感谢您!

4

2 回答 2

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");
}
于 2012-10-29T05:58:30.337 回答
0

如果我理解你的话,你只需要这样做:

location.hash = "contact";

并且路由事件将触发。

于 2013-01-02T07:51:23.593 回答