下图中“上传图片”是js动态加载的,点击“上传图片”没有反应,是因为layui的触发函数是先于动态加载的html代码的,所以就会绑定失败。
解决方案:
js代码:
// 某个js函数
function test(){
// 构造要嵌入html代码
// ......
certificates_html += '<button type="button" class="layui-btn upload_img" id="original_document_' + accounting_entry['id'] + '">';
certificates_html += '<i class="layui-icon"></i>上传图片';
certificates_html += '</button>';
// 将html代码嵌入到html页面中
document.getElementById('all_certificates').innerHTML = certificates_html;
// 为html代码绑定上传事件
layui.use(['form','upload'],function(){
var $ = layui.jquery,upload = layui.upload;
upload.render({
elem: '.upload_img',
url: "{:url('Upload/upload')}",
before: function(){
// 上传服务器前的操作
var item = this.item;
var getId=item.context.id;
console.log(item)
console.log(getId)
},
done: function(res, index, upload){
// 上传服务器后的操作
console.log(res);
var item = this.item;
var getId=item.context.id;
}
})
});
}