您好,登錄后才能下訂單哦!
環境:Jquery1.10
任務:使用ajax異步更新頁面信息
現象:更新后的html頁面上的js失效
問題:使用ajax更新的元素不能綁定事件
相關代碼:
$('#a').click(function(){ alert('這個事件不能綁定到新html的$(#a)'); }); $('#search').click(function() { $.ajax( { data : $('#conditions').serialize(), async : false, type : "POST", dataType : 'html', error : function(request) { alert("請求數據時出錯,請檢查網絡連接。"); }, success : function(data) { $('#ajaxform').html($(data).find('#ajaxform').html()); } } }); });
解決方案:
1、剛開始,我認為新更新的元素沒有綁定事件,嘗試各種方法來綁定,但是都沒有用,于是使用比較笨的一個方案,
將所有需要的js在success中重新綁定。
代碼:
success : function(data) { $('#ajaxform').html($(data).find('#ajaxform').html()); $('#a').click(function(){ alert('這是一個愚蠢的行為'); }); }
2、不能在更新后重新綁定,就在更新前綁定,使用on()來綁定將來的元素。
代碼:
$(document).on('click','#a',function(){ alert('將事件綁定到未來的元素#a上'); }); $('#search').click(function() { $.ajax( { ... } ); });
參考鏈接:http://www.cnblogs.com/leejersey/p/3545372.html
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。