JQuery Ajax 異步操作之動態(tài)添加節(jié)點功能
異步操作動態(tài)添加節(jié)點,導致在代碼中給添加的節(jié)點全局綁定事件或者獲取元素無效,上代碼:
$(function () { var IP = '...'; // 頁面中的默認編號起始值 和 公用IP前綴 showData(); function showData() { if ($('.content')) $('.content').remove(); $.ajax({ url:IP + '/get', type:'get', success:function (data) { var newInfo = ''; if(!data) return alert('對不起,沒有數據可供操作!'); 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); } }); } } //這是一段很明顯的通過JQuery-ajax前后臺交互并動態(tài)添加的代碼; //但是,如果你在該方法(showData())外面來給上述動態(tài)添加的a標簽添加事件或者獲取值的時候可能會出現(xiàn)無效的情況: $('.remove').click(function(){ alert('這是刪除按鈕!'); }); //頁面中則不會彈出(這是刪除按鈕!)的彈框;
那么,問題出在哪里呢?
事實上,ajax從后臺獲取數據再顯示到我們的頁面中的過程是異步的,也就是說當我們利用ajax從后臺獲取值得時候,在ajax之后的代碼是一直往下執(zhí)行著走的,而不會等著你ajax獲取并創(chuàng)建節(jié)點完成后再往下繼續(xù)執(zhí)行,這便是異步請求的機制,對于這個問題我們怎么解決呢:
$(function () { var IP = '...'; // 頁面中的默認編號起始值 和 公用IP前綴 showData(); function showData() { if ($('.content')) $('.content').remove(); $.ajax({ url:IP + '/get', type:'get', success:function (data) { var newInfo = ''; if(!data) return alert('對不起,沒有數據可供操作!'); 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); // 當動態(tài)添加節(jié)點完成之后再給其中的按鈕綁定事件 $('.remove').click(function(){ alert('這是刪除按鈕!'); }); }, error:function (err) { alert(err); } }); } }
將綁定事件的代碼改到ajax內部,這樣讓動態(tài)添加完成之后再給其中的按鈕綁定事件,就可以達到我們所需要的效果了,這便是ajax的異步機制
以上所述是小編給大家介紹的JQuery Ajax 異步操作之動態(tài)添加節(jié)點功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
- jquery 添加節(jié)點的幾種方法介紹
- JQuery給元素添加/刪除節(jié)點比如select
- Jquery動態(tài)添加及刪除頁面節(jié)點元素示例代碼
- jquery 刪除節(jié)點 添加節(jié)點 找兄弟節(jié)點的簡單實現(xiàn)
- JQuery給select添加/刪除節(jié)點的實現(xiàn)代碼
- jQuery循環(huán)遍歷子節(jié)點并獲取值的方法
- JQuery遍歷DOM節(jié)點的方法
- JQuery中節(jié)點遍歷方法實例
- Jquery遍歷節(jié)點的方法小集
- Jquery節(jié)點遍歷next與nextAll方法使用示例
- jQuery實現(xiàn)動態(tài)添加節(jié)點與遍歷節(jié)點功能示例
相關文章
JQuery插件fancybox無法在彈出層使用左右鍵的解決辦法
本篇文章主要是對JQuery插件fancybox無法在彈出層使用左右鍵的解決辦法進行了介紹,需要的朋友可以過來參考下,希望對大家有所幫助2013-12-12jQuery實現(xiàn)發(fā)送驗證碼并60秒倒計時功能
這篇文章主要介紹了jQuery實現(xiàn)發(fā)送驗證碼并60秒倒計時功能,非常不錯,代碼簡單易懂,需要的朋友參考下吧2016-11-11基于jquery的兼容各種瀏覽器的iframe自適應高度的腳本
在網上找了很多的iframe自適應高度的腳本,對瀏覽的的兼容性都不好。所以就想利用jquery強大的兼容性,寫一個iframe自適應高度的腳本。2010-08-08基于jquery實現(xiàn)智能提示控件intellSeach.js
這篇文章主要為大家詳細介紹了基于jquery實現(xiàn)智能提示控件intellSeach.js的相關資料,感興趣的小伙伴們可以參考一下2016-03-03