我正在使用jQuery mobile with backbone
我已禁用jquery移动路由并使用一切运行正常的主干
这是配置
define(['jquery'], function($){
$(document).bind("mobileinit", function () {
$.mobile.ajaxEnabled = false;
$.mobile.linkBindingEnabled = false;
$.mobile.hashListeningEnabled = false;
$.mobile.pushStateEnabled = false;
// Remove page from DOM when it's being replaced
$('div[data-role="page"]').live('pagehide', function (event, ui) {
$(event.currentTarget).remove();
});
});
});
然后在我的ajax上调用我的观点我使用这段代码
$.ajax({
beforeSend: function() { $.mobile.showPageLoadingMsg(); },
url: this.template,
dataType: 'html',
async: false,
success: function(data) {
compiled = _.template(data);
$.mobile.hidePageLoadingMsg();
}
});
这显示firefox中的加载程序很好,但在chrome或我的ios设备上不起作用?
任何人都可以帮忙吗?
由于
答案 0 :(得分:1)
Chrome / safari / android / iOS等Webkit浏览器在jQM和async:false ajax调用方面存在问题。当ajax调用正在处理时,它们将被锁定。无论出于何种原因,Firefox都没有这样的问题。
变化:
async: false,
为:
async: true,
如果async:false对您的应用功能至关重要,并且您希望在ajax工作时阻止用户互动,则在整个应用上显示透明的div叠加层。在beforesend状态下执行,并在成功或失败状态下将其删除。