.ajaxSuccess()
.ajaxSuccess(handler(event,XMLHttpRequest,ajaxOptions))
描述: 绑定一个函数当 Ajax 请求成功完成时执行。 这是一个Ajax Event.
handler(event, XMLHttpRequest, ajaxOptions)
类型:
Function()
被调用的函数。
每当一个Ajax请求成功完成,jQuery就会触发ajaxSuccess
事件,在这个时间点所有处理函数都会使用.ajaxSuccess()
方法注册并执行。
观察这种方法,建立一个基本的Ajax加载请求:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script src="jquery-1.10.2.js"></script>
</head>
<body>
<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>
<script>
//在document元素上绑定事件处理器:
$(document).ajaxStart(function(){
$(".log").text("触发ajaxSuccess处理程序。");
});
//现在,我们可以使用任何的jQuery方法构建一个Ajax请求:
$( ".trigger" ).click(function() {
$( ".result" ).load( "test.html" );
});
</script>
</body>
</html>
效果图:
当我们点击class为 trigger
的元素并且Ajax请求成功完成,这个信息就会显示。
但是从 jQuery 1.8 开始, .ajaxStart()
方法只能绑定到 document
元素.
无论哪一个Ajax请求被完成,所有ajaxSuccess
处理器都将被执行。如果我们必须区分不同的请求,我们可以使参数传递给这个处理器。 他是通过事件对象、 XMLHttpRequest
对象和设置对象中使用的请求,做每一次ajaxSuccess
处理器执行的。 举个例子,我们能限制我们的回调到只处理事件处理某一特定的URL:
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script src="jquery-1.10.2.js"></script>
</head>
<body>
<div class="trigger">Trigger</div>
<div class="result"></div>
<div class="log"></div>
<script>
//在document元素上绑定事件处理器:
$(document).ajaxSuccess(function(){
$(".log").text("触发ajaxSuccess处理程序。");
});
//现在,我们可以使用任何的jQuery方法构建一个Ajax请求:
$( ".trigger" ).click(function() {
$( ".result" ).load( "test.html" );
});
$(document).ajaxSuccess(function(event, xhr, settings) {
if ( settings.url == "test.html" ) {
$( ".log" ).text( "Triggered ajaxSuccess handler. The ajax response was: " +
xhr.responseText );
}
});
</script>
</body>
</html>
效果图:
注意: 你可以得到返回的AJAX内容 察看XML和HTML的xhr.responseXML
或 xhr.responseHTML
之间的分别。
其他注意事项:
- 如果
global
选项设置为false
,调用$.ajax()
或$.ajaxSuccess()
方法将不会被触发。