创建元素,然后立马绑定事件?

作者站长头像
站长
· 阅读数 17

我想请教一个问题,就是创建一个很复杂的元素,浏览器渲染需要2秒,然后绑定事件,绑定的事件是否会生效?

$(document.body).append('<div id="test"></div>')
$('#test').on('click',function(){}) // 此处代码会不会因为 ‘test’元素过于复杂,浏览器没渲染完成,然后就给元素绑定了事件,造成事件绑定不成功
回复
1个回答
avatar
test
2024-07-10

我建议通过createElement来创建元素,然后通过addEventListener绑定事件,这样在还没append到页面之前,也就是还未渲染到页面就可以绑定事件了

const div = document.createElement('div')
div.id = 'test'
div.addEventListener('click', function(){})
document.body.append(div)
回复
likes
适合作为回答的
  • 经过验证的有效解决办法
  • 自己的经验指引,对解决问题有帮助
  • 遵循 Markdown 语法排版,代码语义正确
不该作为回答的
  • 询问内容细节或回复楼层
  • 与题目无关的内容
  • “赞”“顶”“同问”“看手册”“解决了没”等毫无意义的内容