JQuery Ajax 異步操作之動(dòng)態(tài)添加節(jié)點(diǎn)功能
異步操作動(dòng)態(tài)添加節(jié)點(diǎn),導(dǎo)致在代碼中給添加的節(jié)點(diǎn)全局綁定事件或者獲取元素?zé)o效,上代碼:
$(function () { var IP = '...'; // 頁(yè)面中的默認(rèn)編號(hào)起始值 和 公用IP前綴 showData(); function showData() { if ($('.content')) $('.content').remove(); $.ajax({ url:IP + '/get', type:'get', success:function (data) { var newInfo = ''; if(!data) return alert('對(duì)不起,沒(méi)有數(shù)據(jù)可供操作!'); newInfo +='<div class="btnBox">' + '<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="remove">刪除</a>' + '<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="change">修改</a>' + '</div>'; });$('body').append(newInfo); }, error:function (err) { alert(err); } }); } } //這是一段很明顯的通過(guò)JQuery-ajax前后臺(tái)交互并動(dòng)態(tài)添加的代碼; //但是,如果你在該方法(showData())外面來(lái)給上述動(dòng)態(tài)添加的a標(biāo)簽添加事件或者獲取值的時(shí)候可能會(huì)出現(xiàn)無(wú)效的情況: $('.remove').click(function(){ alert('這是刪除按鈕!'); }); //頁(yè)面中則不會(huì)彈出(這是刪除按鈕?。┑膹椏?
那么,問(wèn)題出在哪里呢?
事實(shí)上,ajax從后臺(tái)獲取數(shù)據(jù)再顯示到我們的頁(yè)面中的過(guò)程是異步的,也就是說(shuō)當(dāng)我們利用ajax從后臺(tái)獲取值得時(shí)候,在ajax之后的代碼是一直往下執(zhí)行著走的,而不會(huì)等著你ajax獲取并創(chuàng)建節(jié)點(diǎn)完成后再往下繼續(xù)執(zhí)行,這便是異步請(qǐng)求的機(jī)制,對(duì)于這個(gè)問(wèn)題我們?cè)趺唇鉀Q呢:
$(function () { var IP = '...'; // 頁(yè)面中的默認(rèn)編號(hào)起始值 和 公用IP前綴 showData(); function showData() { if ($('.content')) $('.content').remove(); $.ajax({ url:IP + '/get', type:'get', success:function (data) { var newInfo = ''; if(!data) return alert('對(duì)不起,沒(méi)有數(shù)據(jù)可供操作!'); newInfo +='<div class="btnBox">' + '<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="remove">刪除</a>' + '<a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="change">修改</a>' + '</div>'; });$('body').append(newInfo); // 當(dāng)動(dòng)態(tài)添加節(jié)點(diǎn)完成之后再給其中的按鈕綁定事件 $('.remove').click(function(){ alert('這是刪除按鈕!'); }); }, error:function (err) { alert(err); } }); } }
將綁定事件的代碼改到ajax內(nèi)部,這樣讓動(dòng)態(tài)添加完成之后再給其中的按鈕綁定事件,就可以達(dá)到我們所需要的效果了,這便是ajax的異步機(jī)制
以上所述是小編給大家介紹的JQuery Ajax 異步操作之動(dòng)態(tài)添加節(jié)點(diǎn)功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- jquery 添加節(jié)點(diǎn)的幾種方法介紹
- JQuery給元素添加/刪除節(jié)點(diǎn)比如select
- Jquery動(dòng)態(tài)添加及刪除頁(yè)面節(jié)點(diǎn)元素示例代碼
- jquery 刪除節(jié)點(diǎn) 添加節(jié)點(diǎn) 找兄弟節(jié)點(diǎn)的簡(jiǎn)單實(shí)現(xiàn)
- JQuery給select添加/刪除節(jié)點(diǎn)的實(shí)現(xiàn)代碼
- jQuery循環(huán)遍歷子節(jié)點(diǎn)并獲取值的方法
- JQuery遍歷DOM節(jié)點(diǎn)的方法
- JQuery中節(jié)點(diǎn)遍歷方法實(shí)例
- Jquery遍歷節(jié)點(diǎn)的方法小集
- Jquery節(jié)點(diǎn)遍歷next與nextAll方法使用示例
- jQuery實(shí)現(xiàn)動(dòng)態(tài)添加節(jié)點(diǎn)與遍歷節(jié)點(diǎn)功能示例
相關(guān)文章
jquery模擬picker實(shí)現(xiàn)滑動(dòng)選擇效果
這篇文章主要為大家詳細(xì)介紹了jquery模擬picker實(shí)現(xiàn)滑動(dòng)選擇效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04關(guān)于html+ashx開(kāi)發(fā)中幾個(gè)問(wèn)題的解決方法
在跟html+ashx打交道的園友們肯定會(huì)發(fā)現(xiàn),這種模式雖然優(yōu)美,但在開(kāi)發(fā)中會(huì)遇到一些難處理的地方。我也不例外,下面是自己在實(shí)際開(kāi)發(fā)中總結(jié)出來(lái)的幾條經(jīng)驗(yàn),希望跟大家分享,更希望得到大家的建議和更好的解決方法!2011-07-07JQuery插件fancybox無(wú)法在彈出層使用左右鍵的解決辦法
本篇文章主要是對(duì)JQuery插件fancybox無(wú)法在彈出層使用左右鍵的解決辦法進(jìn)行了介紹,需要的朋友可以過(guò)來(lái)參考下,希望對(duì)大家有所幫助2013-12-12jQuery實(shí)現(xiàn)發(fā)送驗(yàn)證碼并60秒倒計(jì)時(shí)功能
這篇文章主要介紹了jQuery實(shí)現(xiàn)發(fā)送驗(yàn)證碼并60秒倒計(jì)時(shí)功能,非常不錯(cuò),代碼簡(jiǎn)單易懂,需要的朋友參考下吧2016-11-11基于jquery的兼容各種瀏覽器的iframe自適應(yīng)高度的腳本
在網(wǎng)上找了很多的iframe自適應(yīng)高度的腳本,對(duì)瀏覽的的兼容性都不好。所以就想利用jquery強(qiáng)大的兼容性,寫(xiě)一個(gè)iframe自適應(yīng)高度的腳本。2010-08-08基于jquery實(shí)現(xiàn)智能提示控件intellSeach.js
這篇文章主要為大家詳細(xì)介紹了基于jquery實(shí)現(xiàn)智能提示控件intellSeach.js的相關(guān)資料,感興趣的小伙伴們可以參考一下2016-03-03