最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

jQuery函数$.ajaxSend()

来源:动视网 责编:小采 时间:2020-11-27 20:17:18
文档

jQuery函数$.ajaxSend()

jQuery函数$.ajaxSend():语法:$("#msg").ajaxSend(function(evt,request,settings){});AJAX请求发送前执行函数。Ajax事件。XMLHttpRequest对象和设置作为参数传递给回调函数$("#msg").ajaxSend(function(evt,reque
推荐度:
导读jQuery函数$.ajaxSend():语法:$("#msg").ajaxSend(function(evt,request,settings){});AJAX请求发送前执行函数。Ajax事件。XMLHttpRequest对象和设置作为参数传递给回调函数$("#msg").ajaxSend(function(evt,reque
 语法:

$("#msg").ajaxSend(function(evt,request,settings){});

AJAX请求发送前执行函数。Ajax事件。

XMLHttpRequest对象和设置作为参数传递给回调函数

$("#msg").ajaxSend(function(evt,request,settings){})是全局事件,也就是说,

只要该页面定义了这个函数,那么,在每个ajax请求前都会执行该函数,这既与该函数前面的选择器#msg无关,

也与用$.get还是$.post请求无关。看下面例子:

<script type="text/javascript">
	$(document).ready(function() {

	$("#msg").ajaxSend(function() {
	alert("无论点击按钮1还是按钮2,都会触发我");
	});

	$("#btn1").click(function() {
	$.post("test1", function() {
	$("#msg").val("haha");
	});
	});

	$("#btn2").click(function() {
	$.get("test2", function() {
	$("#msg").val("haha");
	});
	});
	})
</script>

<body>
	<input type="text" id="msg" value="" />
	
	<button id="btn1">
	按钮1
	</button>
	<button id="btn2">
	按钮2
	</button>
</body>

上面只在一处定义了全局事件$("#msg").ajaxSend(function(){});

我们发现无论是单击id="btn1"执行$.post请求,还是单击id="btn2"执行$.get请求,都会触发全局事件.

需要注意的是上面定义$("#msg").ajaxSend(function(){});事件不在任何一下onClick事件中。

如果是定义在btn1或btn2中的任何一个click事件中,那么,该全局事件会增加执行次数,而不是覆盖。

$("#msg").ajaxStart(function(){ })与$("#msg")ajaxSend(function(){ })函数使用方法相大部分相同,也是全局事件.

区别是ajaxStart执行的顺序早于ajaxSend执行,另外,$("#msg").ajaxStart(function(){ })的执行函数无参数

而$("#msg").ajaxSend(function(evt, request, settings){ })的执行函数可以有参数。

这样,虽然该函数是全局函数,我们可以根据参数值的不同而让其对不同的触发产生不同的效果看如下的例子:

<script type="text/javascript">
	$(document).ready(function() {

	$("#msg").ajaxSend(function(event, obj, options) {
	if (options.url == "test1") {
	alert("按钮1");
	} else if (options.url == "test2") {
	alert("按钮2");
	}
	});

	$("#btn1").click(function() {
	$.post("test1", function() {
	$("#msg").val("haha");
	});
	});

	$("#btn2").click(function() {
	$.get("test2", function() {
	$("#msg").val("haha");
	});
	});
	})
</script>
<body>
	<input type="text" id="msg" value="" />

	<button id="btn1">
	按钮1
	</button>
	<button id="btn2">
	按钮2
	</button>
</body>

第二个例子和第一个相比在ajaxSend函数中加入了参数并在函数里进行了判断。

对于$("#msg").ajaxSend(function(event, obj, options){})函数,注意对于形参来说,只要位置对应,用什么字符来表示是无所谓

event - 包含event对象具体的属性主要有很多,需要知道的一个最重要的属性是该对象包含{type:事件名}事件名就是ajax全局事件,

在此例中为ajaxSend,也就是说event对象有一个属性type其值为"ajaxSend"

obj - 包含XMLHttpRequest对象,主要是该对象的请求状态参数。

options - 包含AJAX请求中使用的选项,主要是当前请求的一些设置参数比如上面用到的url

如果想查看全部的属性,可用console.info()打印到控制台,如截图:

文档

jQuery函数$.ajaxSend()

jQuery函数$.ajaxSend():语法:$("#msg").ajaxSend(function(evt,request,settings){});AJAX请求发送前执行函数。Ajax事件。XMLHttpRequest对象和设置作为参数传递给回调函数$("#msg").ajaxSend(function(evt,reque
推荐度:
标签: 函数 () ajax
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top