国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

jQuery Tips 為AJAX回調函數傳遞額外參數的方法

2019-11-21 00:01:13
字體:
來源:轉載
供稿:網友
具體到這個例子,我們希望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" class="log"></div>
<button onclick="$('.log').html('');">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 onclick="$('div',$(this).closest('div')).html('');">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回調函數傳遞額外參數,以及實用且重要的上下文參數。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 读书| 聊城市| 平塘县| 邯郸县| 翼城县| 德保县| 右玉县| 长寿区| 唐山市| 巴东县| 丰都县| 阳城县| 无为县| 阳西县| 嵩明县| 玛纳斯县| 泗洪县| 苍南县| 收藏| 南丰县| 搜索| 尉氏县| 富裕县| 屯昌县| 平山县| 荣成市| 尼勒克县| 壶关县| 福清市| 嘉峪关市| 铜梁县| 上林县| 云南省| 兰考县| 张家口市| 嘉义县| 饶平县| 珠海市| 木里| 余江县| 花垣县|