出现这种问题是因为你没有正确理解DOM对象是什麼
请不要再使用innerHTML+=去动态添加DOM节点了
原生JS
var HotDiv,SpanTempHotDiv = document.createElement('div')
SpanTemp = document.createElement('span')
SpanTemp.setAttribute('class','suo')
HotDiv.appendChild(SpanTemp)
SpanTemp = document.createElement('span')
SpanTemp.setAttribute('class','off')
SpanTemp.setAttribute('onclick','delh(' + i + ')')
HotDiv.appendChild(SpanTemp)
SpanTemp = document.createElement('span')
SpanTemp.setAttribute('class','xx_kg')
SpanTemp.setAttribute('id','xx_kg')
HotDiv.appendChild(SpanTemp)
document.getElementById('box').appendChild(HotDiv)
JQuery
$('#box').append($('<div>').append($('<span>',{'class' : 'suo'})).append($('<span>',{'class' : 'off',onclick : 'delh(' + i + ')'})).append($('<span>',{'class' : 'xx_kg',id : 'xx_kg'})))当然如果你觉得这样太不直观可以把
document.getElementById("box").innerHTML+= hotDiv
改成
$('#box').append(hotDiv)
即可
下面的djsDiv也要改
个人理解
如何解决
// 在动态添加元素后,如果之前绑定事件是通过click 绑定,则动态添加的元素不会被绑定。//可以通过delegate 进行绑定
$('body').delegate('a','click',function(){
//此处为处理过程
})
//而且要保证$('body') 中的选择器不是动态添加的。
3. 如果该回答没有对应您的问题,请您贴出您的问题代码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)