作者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/cn.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