【问题标题】:Jquery Mobile and Backbone - Can't get history workingJquery Mobile 和 Backbone - 无法让历史记录正常工作
【发布时间】:2012-02-01 02:21:10
【问题描述】:

我整天都在努力让我的主干路由正常工作。当我直接导航到主题标签时它可以工作,例如。 index.html#schedule 但在同一页面上 <a href="#schedule"></a> 不起作用。

我在 jquery 移动加载之前和之后都尝试过。

$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
$.mobile.ajaxEnabled = false;

我创建了一个路由器并启动了主干历史记录。

$(function () {
    var router = new MVC.Router();
    Backbone.history.start();
});

但它似乎并没有挂钩主题标签链接?

非常感谢您的帮助。

谢谢

更新 1:我发现我可以让它在编写脚本期间导航,但主要问题是 <a href="#schedule"></a> 无法导航。我认为这一定很简单,jquery mobile 正在挂钩链接点击。

【问题讨论】:

  • 我发现 hashchange 事件确实让移动事件仍然挂起。处理程序:函数 (){a.mobile._handleHashChange(location.hash)}
  • 经过更多探索环后,我发现 hashchange 事件永远不会触发。即使没有具有该 id 的元素,它也可能很简单,例如页面 hashchange?
  • 我一直在玩,调试 jquery 移动和骨干网,我发现我什至不能调用 router.navigate("jobs")。这让我很头疼:(。

标签: javascript jquery jquery-ui jquery-mobile backbone.js


【解决方案1】:

如果这意味着禁用自动 ajax 和其他有用的功能,我认为与 jquery mobile 对抗以使用主干进行路由是没有意义的。

看看jquery mobile router,它不完全是一个backbone.router克隆,但它可以用来在jquery移动环境中完全替换它。

我的 2 美分

【讨论】:

    【解决方案2】:

    只尝试:

    $.mobile.linkBindingEnabled = false;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-10
      • 2013-02-11
      • 2018-04-22
      相关资源
      最近更新 更多