给定ID时,jQuery addClass()不起作用
我有以下jQuery代码:给定ID时,jQuery addClass()不起作用,jquery,Jquery,我有以下jQuery代码: $.ajax({ type: "POST", url: "/search", data: $("form").serialize(), success: function(data) { $("#tab").addClass("loading"); // THIS LINE DOESN'T WORK // . . . LOAD SEARCH RESULTS HERE (USUALLY TAKES SEVERAL SECONDS) . .
$.ajax({
type: "POST",
url: "/search",
data: $("form").serialize(),
success: function(data) {
$("#tab").addClass("loading"); // THIS LINE DOESN'T WORK
// . . . LOAD SEARCH RESULTS HERE (USUALLY TAKES SEVERAL SECONDS) . . .
$("#tab").removeClass("loading");
}
});
我有以下CSS:
.loading {
background: transparent url(../resources/images/loading.gif) no-repeat right center;
text-indent: -1000px;
}
我有以下相关的HTML:
<div id="tab">
<table id="searchResultsGrid"></table>
</div>
我无法让行$(“#tab”).addClass(“加载”)
工作。在FireBug中观察,类.load
永远不会添加到#选项卡
对象中。我做错了什么
谢谢 试试这个。可能发生的情况是,它添加和删除
加载
类的速度足够快,以至于它可以自行处理
// add the class before the ajax call
$("#tab").addClass("loading");
$.ajax({
type: "POST",
url: "/search",
data: $("form").serialize(),
success: function(data) {
// . . . LOAD SEARCH RESULTS HERE . . .
}
complete: function(data) {
// remove the class on complete, not success, in case of an error
$("#tab").removeClass("loading");
}
});
试试这个。可能发生的情况是,它添加和删除
加载
类的速度足够快,以至于它可以自行处理
// add the class before the ajax call
$("#tab").addClass("loading");
$.ajax({
type: "POST",
url: "/search",
data: $("form").serialize(),
success: function(data) {
// . . . LOAD SEARCH RESULTS HERE . . .
}
complete: function(data) {
// remove the class on complete, not success, in case of an error
$("#tab").removeClass("loading");
}
});
如果看不到HTML,很难说,但有一件事很突出,那就是一旦ajax调用成功返回,您将添加该类。尝试更改为:
$("#tab").addClass("loading");
$.ajax({
type: "POST",
url: "/search",
data: $("form").serialize(),
success: function(data) {
// . . . LOAD SEARCH RESULTS HERE . . .
$("#tab").removeClass("loading");
}
});
如果看不到HTML,很难说,但有一件事很突出,那就是一旦ajax调用成功返回,您将添加该类。尝试更改为:
$("#tab").addClass("loading");
$.ajax({
type: "POST",
url: "/search",
data: $("form").serialize(),
success: function(data) {
// . . . LOAD SEARCH RESULTS HERE . . .
$("#tab").removeClass("loading");
}
});
您应该在ajax调用之前设置类,然后在success函数中删除它。您所做的是设置它,然后在同一代码执行中删除它。在代码完成执行之前,该类不会进行可视化更新,此时您已经删除了该类。您应该在ajax调用之前设置该类,然后在success函数中删除它。您所做的是设置它,然后在同一代码执行中删除它。在代码完成执行之前,该类不会进行可视化更新,此时您已经删除了该类。首先添加类加载,然后删除类加载,这就是为什么您没有看到它工作的原因,您应该在ajax调用之前添加加载类,当调用返回成功时,您可以removeClass首先添加类加载,然后再添加类加载,这就是为什么您没有看到它工作的原因,您应该在ajax调用之前添加加载类,当调用返回成功时,您可以removeClasshtml是什么样子的?为什么要在ajax调用成功后添加loading类?您应该在ajax调用之前添加它,然后在成功函数中删除它可能是因为您同时添加和删除?您怎么知道它不起作用?成功函数是否被回调?在成功块中添加警报,以查看是否收到警报。可以显示html for tab元素吗?实际加载搜索结果需要几秒钟,这就是我想要显示进度的原因。html是什么样子的?为什么要在ajax调用成功后添加loading类?您应该在ajax调用之前添加它,然后在成功函数中删除它可能是因为您同时添加和删除?您怎么知道它不起作用?成功函数是否被回调?在成功块中添加警报,以查看是否收到警报。你能显示tab元素的html吗?搜索结果的实际加载需要几秒钟,这就是我想要显示的进度。你也可以在ajax开始之前使用beforeSend添加类添加“complete”回调函数,并将“addClass()”移到“success”回调之外,这样做就成功了。谢谢您还可以使用beforeSend在ajax开始之前添加类添加“complete”回调函数,并将“addClass()”移到“success”回调之外,这样做就成功了。谢谢