jquery - Meteor:当使用iron-router导航到新路线时,仅在移动设备上刷新整个页面

标签 jquery mobile meteor iron-router touchstart

我的 meteor 应用程序在桌面上按预期工作,但由于更改路线时不必要的总页面刷新,移动体验很慢。

我已经使用“模拟触摸屏”选项在 Google 开发工具上以及移动 Chrome 中的 Galaxy S4 上测试了我的应用程序。当我单击触发iron-router路由到新路由的按钮或链接时,整个页面将刷新,而不是包含模板的一个 yield (即页眉和页脚与标签一起重新加载。整个页面)。当“模拟触摸屏”选项未激活并且单击按钮和链接时,应该发生什么以及桌面上发生什么是正常行为,在 {{ > Yield }} 中模板切换非常快。页面的其余部分不会像预期的那样刷新。我只知道当“模拟触摸屏”选项处于事件状态时,首先会触发触摸启动事件,然后触发单击事件导致整个页面刷新。

关于造成此问题的原因以及如何解决它有什么想法吗?

一些示例代码如下:

//makes the button clicked make the page go back
'click .glyphicon-chevron-left' : function(e) {
e.preventDefault();
history.back();
};


// when clicked goes to a preference page
<a id='Preferences'  href="{{pathFor 'pref'}}" data-toggle="collapse"  data-target=".nav- collapse"> Preferences </a> 

使用 meteor 版本 0.9.0.1 和以下软件包: 不安全感 标准应用程序包 铁路由器 旋转 铁路由器进度 单页登录 账户用户界面 帐户密码 动画CSS meteor natestrauser:连接横幅 mizzao:bootstrap-3

编辑:错误是由非包相关的第 3 方 javascript 文件引起的。如果我能确定问题的具体原因,我会进一步更新。

最佳答案

我修复了这个问题。

Template.back.events({
        'click #back': function (evt) {
            window.history.back();
            evt.preventDefault();
        },
        'touchstart #back': function () {
            window.history.back();
            evt.preventDefault();
        }
    });

Template.layout.events({
    'touchstart a': function (evt) {
        console.log(evt);
        evt.preventDefault();
        Router.go($(evt.currentTarget).attr('href'));
        return false
    }
});

关于jquery - Meteor:当使用iron-router导航到新路线时,仅在移动设备上刷新整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25586582/

相关文章:

mobile - 移动 Web 浏览器中的 SSL 客户端证书身份验证

javascript - Meteor setPersistent 用于 CSS 样式

javascript - 类选择器在我测试时返回 null

authentication - 使用 MPL 的 PayPal iOS 应用程序 - 身份验证失败

javascript - 在表 JQuery 上搜索

Qt Web 引擎 : Is there a way to emulate a mobile browser?

node.js - 部署 Meteor 应用程序时重建 npm 模块

javascript - 如何保持reactiveVars模板的作用域?

javascript - jquery 下拉 div 不太工作

javascript - 如何查找 innerHtml(text) 超出容器元素宽度