jQuery Tips 为AJAX回调函数传递额外参数的方法_Javascript教程-查字典教程网
jQuery Tips 为AJAX回调函数传递额外参数的方法
jQuery Tips 为AJAX回调函数传递额外参数的方法
发布时间:2016-12-30 来源:查字典编辑
摘要:具体到这个例子,我们希望button1和button2点击之后,用AJAX的方式取example.html的内容,然后动态更新页面的id=c...

具体到这个例子,我们希望button1和button2点击之后,用AJAX的方式取example.html的内容,然后动态更新页面的id=callbackdemo3的div

HTML如下:

复制代码 代码如下:

<div id="callbackdemo1">

<button id="button1">ajax load1</button><br/>

</div>

<div id="callbackdemo2">

<button id="button2">ajax load2</button><br/>

</div>

<div id="callbackdemo3"></div>

<button>clear</button>

第一种做法:

适用于最简单的情况,也是比较直观的做法,就是在ajax回调函数中,使用jQuery的id选择器$(“#callbackdemo3″)得到id为callbackdemo3的div后更新其HTML内容

复制代码 代码如下:

$("#callbackdemo1>#button1").click(

function load(){

$.get("example.html",{ 'param[]': ["var1", "var2"] },

function f1(data, textStatus, XMLHttpRequest)

{

$("#callbackdemo3").html(data);

}

);

}

);

第二种做法:

定义好一个接受额外参数的回调函数,然后在默认回调函数的内容调用这个预先定义好的回调函数

这样就能达到传递额外参数的目的了,较之第一种方法,此方法能比较方便的利用各个回调函数的上下文。

复制代码 代码如下:

function callback_with_extraParam(data,param)

{

param.html(data);

}

$("#callbackdemo2>#button2").click(

function load(){

var extraParam = $("#callbackdemo3")

$.get("example.html",{ 'param[]': ["var1", "var2"] },

function f2(data)

{

callback_with_extraParam(data,extraParam);

}

);

}

);

对于额外参数的重要性,不妨看一个稍微复杂一点点的HTML情况,我们希望更新button3下面的那个div的HTML,这个div没有id,那么如何做呢?

复制代码 代码如下:

<div id="callback_complexdemo">

<button id="button3">ajax load3</button><br/>

<button>clear</button><br/>

<div></div>

</div>

当然使用#callback_complexdemo>div也是可以的,但是如果是更加复杂的HTML页面呢?如果没有id=callback_complexdemo呢?嵌套很深呢?

这种情况下,我们就需要有效利用上下文参数这个特性了。

在click的事件处理函数load()中,我们可以方便的获得当前元素的位置var whereAmI = $(this);

这个whereAmI是个jQuery对象,然后在AJAX回调函数f3中,我们利用whereAmI即被点中的这个button想办法去获得想要的div

这一行代码新手有的人看不懂:$('div',$(whereAmI).closest('div'))

首先$closest_parent_div = $(whereAmI).closest('div')即查询获得whereAmI最近的父div对象

然后$('div',$closest_parent_div) 即在最近的父div对象这个上下文中,查找内部的div对象

复制代码 代码如下:

$("#callback_complexdemo>#button3").click(

function load(){

var whereAmI = $(this);

$.get("example.html",{ 'param[]': ["var1", "var2"] },

function f3(data)

{

console.log(whereAmI);

$('div',$(whereAmI).closest('div')).html(data);

}

);

}

);

希望通过这个小例子,能让大家学会如何给AJAX回调函数传递额外参数,以及实用且重要的上下文参数。

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新Javascript教程学习
    热门Javascript教程学习
    编程开发子分类