为什么js渲染html时onclick会自动执行?
发布网友
发布时间:2022-04-26 17:11
我来回答
共2个回答
热心网友
时间:2022-04-21 09:34
是你的写法有问题,在 HTML 中写事件函数是:
<div class="info"><img src="imageUri" alt="" onclick="showimg(imageUri)" /></div>
但是在 JS 中构建 HTML 的时候,方法名不能放在字符串外面作为 JS 代码执行,正确的应该是:
str += `<div class="info"><img src="${data.content.imageUri}" alt="" onclick="showimg(${data.content.imageUri})" /></div>`;
我这里用的是模板字符串,用字符串拼接也是一样的,showimg 不能作一个方法在 JS 中调用,按你的写法,onclick 绑定的是 showimg(data.content.imageUri) 执行完成后的返回值。
热心网友
时间:2022-04-21 10:52
把onclick拿到外面去追答定义一个data-img的属性放在img标签里 设置点击img,拿到data-img,外部执行showimg