2020-01-13 解决方案►JavaScript 原生js中动态添加事件监听 开发中比较容易出现动态渲染元素,无法绑定事件监听,这种情况下需要以事件委托的方式为动态添加的元素添加事件监听 事件委托: 由一个元素监听他的子元素所发生的事件 具体代码: 123456789101112131415161718//这段代码包含处理上传文件代码//scrollContent父元素//setBackGround子元素子元素为动态生成,直接为子元素添加监听会无法获取该元素导致监听失败scrollContent.addEventListener("change", function (e) { let setBackGround = document.querySelector("#setBackGround") if (e.target == setBackGround) { let file = setBackGround.files[0]; let reader = new FileReader(); reader.onload = function (e) { let data = e.target.result; // 'data:image/jpeg;base64,/9j/4AAQSk...(base64编码)...' setStorageBefore("bg", data); body.style.backgroundImage = `url('${data}')`; }; // 以DataURL的形式读取文件: reader.readAsDataURL(file); }}) 前一篇 原生js实现操作文件、本地设置图片背景及美化原生input file 后一篇 JS实现点击空白处隐藏元素