使用 jQuery 获取 Dropzone Instance/Object
Get Dropzone Instance/Object using jQuery
我使用 jQuery 来处理 dropzone。例如
$("#mydropzone").dropzone({ /*options*/ });
我需要获取 Dropzone 实例以便调用此方法:
myDropzone.processQueue()
我怎样才能做到这一点?
可能吗?
换句话说,我如何使用
初始化拖放区
$("#mydropzone").dropzone({ url: "/file/post" });
但同时获取对象的实例,就像我使用初始化它一样:
var myDropzone = new Dropzone("#mydropzone", { url: "/file/post"});
所以我可以打电话给:
myDropzone.processQueue()
非常感谢。
该脚本似乎向给定的 element
添加了一个 dropzone
对象。
所以你可以这样做:
var $dropZone = $("#mydropzone").dropzone({ /*options*/ });
// ...
$dropZone[0].dropzone.processQueue();
如issue #180所述
您还可以使用内置的 Dropzone.forElement
函数。
var myDropzone = Dropzone.forElement("#mydropzone");
使用 jQuery 访问实例的简单方法,如果它已经被初始化:
var dropzone = $(this).get(0).dropzone;
如前所述,您可以使用 dropzone 的 forElement
,它反过来只检查 element.dropzone
,其中 'element' 是原生的(不是 jquery obj) .所以,要合并、总结、解释和扩展以前的答案,你可以这样做:
var element = $("#mydropzone")[0]; // this is the way jquery gives you the original dom
或更好,在简单的 js 中:
var element = document.querySelector("#mydropzone");
然后像这样获取空降区:
element.dropzone
或者,更简洁(这里是纯 js):
var dzone = document.querySelector("#mydropzone").dropzone
仅供参考,当前dropzone的forElement
来源:
Dropzone.forElement = function (element) {
if (typeof element === "string") {
element = document.querySelector(element);
}
if ((element != null ? element.dropzone : undefined) == null) {
throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.");
}
return element.dropzone;
};
使用 Dropzone.instances 检查元素的 id 似乎很简单:
function fn_check_has_dropzone_instances(id){
var found = false;
Dropzone.instances.forEach(function(item,index){
if($($(item)[0].element).attr('id').trim()==id.trim()){
console.log(id);
found = true;
}
});
return found;
}
我使用 jQuery 来处理 dropzone。例如
$("#mydropzone").dropzone({ /*options*/ });
我需要获取 Dropzone 实例以便调用此方法:
myDropzone.processQueue()
我怎样才能做到这一点? 可能吗?
换句话说,我如何使用
初始化拖放区$("#mydropzone").dropzone({ url: "/file/post" });
但同时获取对象的实例,就像我使用初始化它一样:
var myDropzone = new Dropzone("#mydropzone", { url: "/file/post"});
所以我可以打电话给:
myDropzone.processQueue()
非常感谢。
该脚本似乎向给定的 element
添加了一个 dropzone
对象。
所以你可以这样做:
var $dropZone = $("#mydropzone").dropzone({ /*options*/ });
// ...
$dropZone[0].dropzone.processQueue();
如issue #180所述
您还可以使用内置的 Dropzone.forElement
函数。
var myDropzone = Dropzone.forElement("#mydropzone");
使用 jQuery 访问实例的简单方法,如果它已经被初始化:
var dropzone = $(this).get(0).dropzone;
如前所述,您可以使用 dropzone 的 forElement
,它反过来只检查 element.dropzone
,其中 'element' 是原生的(不是 jquery obj) .所以,要合并、总结、解释和扩展以前的答案,你可以这样做:
var element = $("#mydropzone")[0]; // this is the way jquery gives you the original dom
或更好,在简单的 js 中:
var element = document.querySelector("#mydropzone");
然后像这样获取空降区:
element.dropzone
或者,更简洁(这里是纯 js):
var dzone = document.querySelector("#mydropzone").dropzone
仅供参考,当前dropzone的forElement
来源:
Dropzone.forElement = function (element) {
if (typeof element === "string") {
element = document.querySelector(element);
}
if ((element != null ? element.dropzone : undefined) == null) {
throw new Error("No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.");
}
return element.dropzone;
};
使用 Dropzone.instances 检查元素的 id 似乎很简单:
function fn_check_has_dropzone_instances(id){
var found = false;
Dropzone.instances.forEach(function(item,index){
if($($(item)[0].element).attr('id').trim()==id.trim()){
console.log(id);
found = true;
}
});
return found;
}