作者soeasyright (SOEASYRIGHT)
看板Ajax
標題[問題] ajax傳回值後,其中一個變jquery無效
時間Sun Aug 24 03:13:24 2014
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://webptt.com/m.aspx?n=bbs/Ajax/M.1408821206.A.F2A.html
※ 編輯: soeasyright (220.132.71.118), 08/24/2014 03:19:17
1F:→ soeasyright: 備註:環境是chrome瀏覽器跟jQuery1.11.1 08/24 03:24
2F:推 up9cloud: 是。 08/24 03:52
3F:推 mrbigmouth: jquery on(新版)或jquery delegate(舊版) 08/24 07:46
4F:→ mrbigmouth: $('#id-i').on('click', '.class-1', function(){..}) 08/24 07:47
5F:推 Y78: $().click()只能作用在已經存在的element 所以取代之後失效 08/24 09:11
6F:→ Y78: 用上面所說的.on則是可以適用在新增的元素 08/24 09:11
7F:推 Kenqr: 語法有錯 應該是 $(...).click(function(){...}); 08/24 15:22