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

作者: soeasyright (SOEASYRIGHT)   2014-08-24 03:13:24
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就喪失了點擊的功能
是因為直接取代內文的關係嗎?
還是有人有任何想法或提供一下關鍵字嗎?
作者: soeasyright (SOEASYRIGHT)   2014-08-24 03:24:00
備註:環境是chrome瀏覽器跟jQuery1.11.1
作者: up9cloud (九天)   2014-08-24 03:52:00
是。
作者: mrbigmouth (大嘴先生)   2014-08-24 07:46:00
jquery on(新版)或jquery delegate(舊版)$('#id-i').on('click', '.class-1', function(){..})
作者: Y78 (Y78)   2014-08-24 09:11:00
$().click()只能作用在已經存在的element 所以取代之後失效用上面所說的.on則是可以適用在新增的元素
作者: Kenqr (function(){})()   2014-08-24 15:22:00
語法有錯 應該是 $(...).click(function(){...});
作者: Rplus (R+) (9527)   2014-08-24 18:26:00
http://jsbin.com 直接來個範例吧...

Links booklink

Contact Us: admin [ a t ] ucptt.com