我正在使用JQTOUCH,在JQTOUCH中,有几个链接正在通过AJAX加载然后滑入。问题是没有向用户提供加载指示。
我想要一种方法来添加带有AJAX微调器的Loading类,当加载ajax调用时,并在加载完成后删除类,并显示页面。
有什么想法吗?
答案 0 :(得分:3)
showPageByHref()答案部分正确。
但是,而不是
$('body').append('<div id="loadinginprogress">Loading...</div>');
你需要
$('.current').append('<div id="loadinginprogress">Loading...</div>');
正文对于jqtouch来说过于笼统,需要特定于当前显示的DIV页面
答案 1 :(得分:2)
简而言之 - 在ajax调用之前添加加载div(在exmaple中为id loadinginprogress),然后删除“success”或“error”。 ajax调用部分看起来像那样(缩短它):
function showPageByHref(href, options) { ... if (href != '#'){ $('body').append('<div id="loadinginprogress">Loading...</div>'); $.ajax({ url: href, data: settings.data, type: settings.method, success: function (data, textStatus) { $('#loadinginprogress').remove() var firstPage = insertPages(data, settings.animation); if (firstPage) { if (settings.method == 'GET' && jQTSettings.cacheGetRequests && settings.$referrer) { settings.$referrer.attr('href', '#' + firstPage.attr('id')); } if (settings.callback) { settings.callback(true); } } }, error: function (data) { $('#loadinginprogress').remove() if (settings.$referrer) settings.$referrer.unselect(); if (settings.callback) { settings.callback(false); } } }); } ... }
用于加载div的css类似于:
#loadinginprogress { -webkit-border-radius: 10px; background-color: rgba(0,0,0,.5); color: white; font-size: 18px; font-weight: bold; height: 80px; left: 60px; line-height: 80px; margin: 0 auto; position: absolute; text-align: center; top: 120px; width: 200px; z-index: 5000; }
答案 2 :(得分:1)
如果您的链接是li class =“arrow”元素,则这是基本行为。你是如何显示链接的,以及你希望加载微调器显示在哪里?
答案 3 :(得分:1)
感谢您提供不同的帖子。他们帮助了我很多。
我有一个解决方案,建议不修补jQTouch所依赖的jQtouch代码。 它使用jQuery ajax功能。
$(document).ready(function() {
...
$('#jqt').ajaxStart(function() {
console.log("ajaxStart");
...
}).ajaxSuccess(function() {
console.log("ajaxSuccess");
...
}).ajaxError(function() {
console.log("ajaxError");
....
});
....
});
this jQuery doc page中提供了更多详细信息。
答案 4 :(得分:0)
您可以添加自定义事件处理程序,并在每次单击特定元素时触发loading.gif。
答案 5 :(得分:0)
我刚刚回答了达林帕克的question。看看它可能会对你有帮助。