通常我们在使用Layui的上传文件功能时,由于事件冒泡的机制,动态元素绑定layui时会出现点击无效的情况,这时候我们就需要用到委托的方式来实现动态元素的点击效果
// 新添加加的form委托事件
layui.use('upload', function(){
var upload = layui.upload;
//商标信息部分处理
$(document).on('click', '.trade_block_add', function() {
//此处为动态添加的元素
var model = $(".trade_block_model").html();
$('#tab-3').append(model);
//执行上传图片实例
upload.render({
elem: '.upload_image' //绑定元素
,url: '/upload' //上传接口参数
,accept: 'images' //只允许上传图片
,size: 4096 //限制上传大小
,done: function(res) {
uploadDone(res, this)
}
,error: function(){
//请求异常回调
}
});
});
});
//上传完毕回调
var uploadDone = function(res, obj) {
var dom = obj.item.parent();
if(res.code === 0) {
dom.find('.img_path').val("/uploads"+res.data.path);
dom.find('.layui-upload-list .layui-upload-img').attr('height','100').attr('src', "/uploads"+res.data.path);
} else {
layer.msg(res.msg);
}
};
上传效果