我一直在我的 ajax 表单提交中使用以下代码段:
$.ajax({
url: "",
data: ilmoittautumisdata,
type: "POST",
success:function(){
});
error:function(){
});
});
但是,我记得有人告诉我不要在其中使用成功和错误,因为它们已被弃用(?),而是使用
$.ajaxComplete();
和 $.ajaxError();
。但是,阅读文档对我没有帮助,因为我想同时使用它们,这对我不起作用。
$('#ilmoittuminen').submit(function(){
var ilmoittautumisdata = $('#ilmoittuminen').serialize();
$.ajax({
//url: "",
data: ilmoittautumisdata,
type: "POST"
});
$.ajaxComplete(
function(){
$('#ilmoittuminen').slideUp();
});
$.ajaxError(
function(){
});
return false;
});
我应该怎么做?
http://jsfiddle.net/D7qgd/
最佳答案
首先,您要查找的词是“已弃用”。据我所知, success
和 error
属性绝对不会被弃用。您可以(并且应该在您的情况下)继续使用它们。
您尝试使用 ajaxError
和 ajaxComplete
的问题在于它们是作为实例方法实现的,而不是 jQuery 对象本身的静态方法。因此,您需要选择一些元素并调用该集合上的方法。元素本身根本不重要:
$("#someElement").ajaxComplete(function () {
// Do stuff
});
您还没有遇到的下一个问题是
ajaxError
和相关方法注册全局 AJAX 事件处理程序。每次调用这些方法之一时,都会向全局集中添加一个新的事件处理程序,并且每次触发 AJAX 事件时,都会执行所有注册的处理程序。更新 (感谢@DCoder)
看起来
success
和 error
属性从 jQuery 1.8 开始被弃用。相反,您可以使用 jQuery 修改的 XHR 对象的 fail
、 done
和 always
方法。从 deferred object 继承的任何对象都可以使用这些方法(jqXHR 对象是其中之一):$.ajax(ajaxSetupObject).done(function () {
// Handle success
}).error(function () {
// Handle error
});
关于javascript - $.ajaxComplete 和 $.ajaxError 的正确用法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12881072/