layui 2.8将 upload.render()被多次执行后,点击“bindAction”会多次触发上传
时间: 2024-02-24 08:55:07 浏览: 167
layui一个页面使用多个文件upload上传按钮
是的,在layui 2.8中,如果你多次执行upload.render(),然后在某个时刻点击“上传”按钮,就会发现上传事件会被多次触发。这是因为每次执行upload.render()都会新建一个上传实例,而这些实例都会绑定上传事件。
为了解决这个问题,可以在执行upload.render()之前,先判断该元素是否已经绑定了上传事件。如果已经绑定,则直接返回该上传实例,否则再新建一个上传实例并绑定事件。
示例代码如下:
```
var uploadInst = uploadInst || upload.render({
elem: '#test',
url: '/upload/',
done: function(res){
console.log(res)
}
});
// 点击上传时触发
$('#uploadBtn').on('click', function(){
// 触发上传
uploadInst.upload();
});
```
在这个示例中,我们使用了uploadInst变量来保存上传实例。在点击上传按钮时,直接调用uploadInst.upload()来触发上传。这样,无论upload.render()被执行了多少次,都只会有一个上传实例并绑定了上传事件,避免了多次触发上传事件的问题。
阅读全文