layui 2.8将 upload.render()实例销毁。没有destroy函数
时间: 2024-02-24 11:54:57 浏览: 126
很抱歉,我之前的回答有误。在layui 2.8中,upload.render()实例可以通过uploadInst.config.elem.next().find("input[type='file']").off('change')来销毁。
示例代码如下:
```
var uploadInst = upload.render({
elem: '#test',
url: '/upload/',
done: function(res){
console.log(res)
}
});
// 销毁实例
uploadInst.config.elem.next().find("input[type='file']").off('change');
```
这里是通过jquery的off()方法来移除input[type='file']的change事件,从而达到销毁upload.render()实例的目的。
相关问题
layui 2.8将 upload.render()实例销毁
你可以使用uploadInst.destroy()方法来销毁upload.render()实例,示例如下:
```
var uploadInst = upload.render({
elem: '#test',
url: '/upload/',
done: function(res){
console.log(res)
}
});
// 销毁实例
uploadInst.destroy();
```
layui 2.8将 upload.render()被多次执行后,点击“bindAction”会多次触发上传
是的,在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()被执行了多少次,都只会有一个上传实例并绑定了上传事件,避免了多次触发上传事件的问题。
阅读全文