我正在尝试隐藏菜单,显示动画gif,隐藏gif,返回更新的菜单。 菜单消失并重新出现,但动画gif不会显示。
我做错了什么?
$(document).ready(function () {
$("#menu").wijmenu({
orientation: 'vertical'
});
$("#TDButtons a").click(function () {
var href = $(this).attr("href");
$('#menuAjax').hide(0, LoadAjaxContent(href));
return false;
});
function LoadAjaxContent(href) {
$.ajax({
url: href,
success: function (data) {
$("#menuAjax").html(data)
.addClass("loading")
.delay(5000)
.removeClass("loading")
.fadeIn('slow');
$("#menu").wijmenu({
orientation: 'vertical'
});
}
});
}
如果您需要更多信息,请与我们联系。感谢
答案 0 :(得分:2)
它没有显示您delay
某些不是可排队动画的原因:
.addClass("loading")
.delay(5000)
.removeClass("loading")
.fadeIn('slow');
被解释为:
.addClass("loading")
.removeClass("loading")
.delay(5000)
.fadeIn('slow');
你可以这样做:
function LoadAjaxContent(href) {
$.ajax({
url: href,
success: function (data) {
$("#menuAjax").html(data).removeClass("loading").fadeIn('slow');
$("#menu").wijmenu({ orientation: 'vertical' });
}
});
}
$("#TDButtons a").click(function (e) {
e.preventDefault();
var href = this.href;
$('#menuAjax').addClass("loading").hide();
LoadAjaxContent(href);
});
答案 1 :(得分:1)
您正在添加,一旦收到数据,就从元素中删除加载类。你应该使用ajaxStart和ajaxStop函数来完成它,它最终会在发送请求之前添加加载类,并在完成ajax操作后删除。
$(document).ready(function () {
$("#menu").wijmenu({
orientation: 'vertical'
});
$("#TDButtons a").click(function () {
var href = $(this).attr("href");
$('#menuAjax').hide(0, LoadAjaxContent(href));
return false;
});
$.ajaxStart(function(){
$("#menuAjax").addClass("loading");
});
$.ajaxStop(function(){
$("#menuAjax").removeClass("loading");
});
function LoadAjaxContent(href) {
$.ajax({
url: href,
success: function (data) {
$("#menuAjax").html(data)
.delay(5000)
.fadeIn('slow');
$("#menu").wijmenu({
orientation: 'vertical'
});
}
});
}
答案 2 :(得分:1)
您的加载类应在发送之前添加,然后再删除。你正在添加它,(并且正如roXon错误地使用.delay函数指出的那样)然后再次删除它,而不是给它任何时间显示它。
尝试这样的事情
$(document).ready(function () {
$("#menu").wijmenu({
orientation: 'vertical'
});
$("#TDButtons a").click(function () {
var href = $(this).attr("href");
$('#menuAjax').hide(0, LoadAjaxContent(href));
return false;
});
function LoadAjaxContent(href) {
$("#menuAjax").addClass("loading")
$.ajax({
url: href,
success: function (data) {
$("#menuAjax").html(data)
//.delay(5000) Not needed!
.removeClass("loading")
.fadeIn('slow');
$("#menu").wijmenu({
orientation: 'vertical'
});
}
});
}