this.data.upload = upload.render({ elem: '.fairy-sku-img', bindAction: '#id-upload-skus')多次实例化后,怎么让上传完毕后的回调只触发一次
时间: 2024-02-23 10:02:52 浏览: 173
prop-types.zip
可以使用一个计数器来判断当前上传组件是否已经触发过回调函数。具体来说,可以在每个上传组件的回调函数中将计数器加一,然后判断计数器的值是否等于上传组件的数量,如果相等则说明所有上传组件都已经触发过回调函数了,就可以执行最终的回调函数了。具体代码如下:
```javascript
var uploadCount = 0; // 计数器,记录已经触发回调函数的上传组件数量
// 实例化上传组件
this.data.upload = upload.render({
elem: '.fairy-sku-img',
bindAction: '#id-upload-skus',
done: function(res) {
// 处理上传成功后的逻辑
handleUploadCallback(res);
// 计数器加一
uploadCount++;
// 判断是否所有上传组件都已经触发过回调函数
if (uploadCount === uploadInstances.length) {
// 执行所有上传组件都上传完毕后的回调函数
handleAllUploadCallback();
}
}
});
// 处理上传成功后的回调函数
function handleUploadCallback(res) {
// TODO: 处理上传成功后的逻辑
}
// 所有上传组件都上传完毕后的回调函数
function handleAllUploadCallback() {
// TODO: 处理所有上传组件上传完毕后的逻辑
}
```
这样,在多次实例化上传组件的情况下,每个上传组件上传成功后都会调用回调函数并将计数器加一,当所有上传组件都上传完毕后,就会执行最终的回调函数。
阅读全文