[問題] ajax傳回值後,其中一個jquery變無效

看板Ajax作者 (SOEASYRIGHT)時間9年前 (2014/08/24 03:13), 9年前編輯推噓4(404)
留言8則, 6人參與, 最新討論串1/1
html: <a id='id-1'> <div id='id-2'> <div class='class-1'></div> </div> js: $('#id-2 .class-1').click(function){ alert('hihi') } $('#id-1').click(function){ $.post(url),{ par:'par' },function(data){ $('#id-2').html(data) } } data內容為 <div class='class-1'> data </div> 整個流程為:點了a連結後,跟伺服器要資料,將回傳資料取代id-2裡面全部的內容 結果class-1就喪失了點擊的功能 是因為直接取代內文的關係嗎? 還是有人有任何想法或提供一下關鍵字嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.71.118 ※ 文章網址: http://www.ptt.cc/bbs/Ajax/M.1408821206.A.F2A.html ※ 編輯: soeasyright (220.132.71.118), 08/24/2014 03:19:17

08/24 03:24, , 1F
備註:環境是chrome瀏覽器跟jQuery1.11.1
08/24 03:24, 1F

08/24 03:52, , 2F
是。
08/24 03:52, 2F

08/24 07:46, , 3F
jquery on(新版)或jquery delegate(舊版)
08/24 07:46, 3F

08/24 07:47, , 4F
$('#id-i').on('click', '.class-1', function(){..})
08/24 07:47, 4F

08/24 09:11, , 5F
$().click()只能作用在已經存在的element 所以取代之後失效
08/24 09:11, 5F

08/24 09:11, , 6F
用上面所說的.on則是可以適用在新增的元素
08/24 09:11, 6F

08/24 15:22, , 7F
語法有錯 應該是 $(...).click(function(){...});
08/24 15:22, 7F

08/24 18:26, , 8F
http://jsbin.com 直接來個範例吧...
08/24 18:26, 8F
文章代碼(AID): #1J-EVMyg (Ajax)