jQuery方法执行后执行
在使用jQuery时,我们常常需要执行一些操作后再执行另一些操作。这时我们就需要用到jQuery方法执行后执行的功能。jQuery提供了很多方法可以实现这样的功能,比如回调函数、promise、deferred等。 回调函数:回调函数是指在某个操作完成后,将一个函数作为参数传入另一个函数中,以便于在操作完成后执行该函数。例如:$( "#target" ).click(function() { alert( "Handler for .click() called." ); }); 这段代码中,当用户点击id为target的元素时,会执行alert函数。 promise:promise是在jQuery1.5版本中引入的新功能,它提供了一个对象来表示异步操作的状态。promise对象有三种状态:pending、resolved和rejected。当异步操作正在执行时,状态为pending;当异步操作成功完成时,状态为resolved;当异步操作发生错误时,状态为rejected。我们可以在promise对象上使用done、fail、always等方法,来指定异步操作成功时、失败时和任意时刻都要执行的函数。例如:$.get( "test.php" ).done(function() { alert( "success" ); }).fail(function() { alert( "error" ); }).always(function() { alert( "complete" ); }); 这段代码中,当向test.php发送请求时,如果请求成功,则执行success函数;如果请求失败,则执行error函数;任意时刻都会执行complete函数。 deferred:deferred是promise对象的一个扩展,它提供了更多的控制异步操作的方法。deferred对象可以通过deferred.resolve()方法将promise对象的状态从pending改变为resolved;也可以通过deferred.reject()方法将promise对象的状态从pending改变为rejected。我们可以在deferred对象上使用done、fail、always等方法,来指定异步操作结果的处理方式。例如:var deferred = $.Deferred(); $.get( "test.php" ).done(function() { deferred.resolve(); }).fail(function() { deferred.reject(); }); deferred.promise().done(function() { alert( "success" ); }).fail(function() { alert( "error" ); }); 这段代码中,当向test.php发送请求时,如果请求成功,则使用deferred.resolve()方法将promise对象的状态从pending改变为resolved;如果请求失败,则使用deferred.reject()方法将promise对象的状态从pending改变为rejected。deferred.promise().done(function() { alert( "success" ); }).fail(function() { alert( "error" ); });这段代码中,当promise对象的状态改变为resolved时,执行success函数;当promise对象的状态改变为rejected时,执行error函数。