我在上传之前使用croppie来编辑图片。任务是在不重新加载页面的情况下销毁并重新启动此插件。
所以我已经拥有了:
$('#someID').croppie({
viewport: {
width: 128,
height: 128
}
});
$('#someID').croppie('bind', {
url: 'some base64 encoded image'
});
经过一些操作 - 我隐藏了插件:
$('#someID').toggle();
$('#someID').croppie('bind');
毕竟有些情况下我再次需要croppie并且js代码的第一部分再次起作用,所以我在控制台中:
croppie.min.js:1 Uncaught Error: Croppie: Can't initialize croppie more than once
显然我现在只是检查当前元素的初始化插件。我找到了什么:
// it supposed to be the answer, however it doesn't work correctly for me.
if (!jQuery().fn.croppie) {
$('#someID').croppie({
viewport: {
width: 128,
height: 128
}
});
}
this answer - 它始终是true
(因为它包含了库并且它返回了函数)而我无法检查这种方式;
this one同样的问题。
那么,如何确保插件现在是否已初始化?
P.S。它可能是croppie或任何其他插件。谢谢!
答案 0 :(得分:0)
用if (!jQuery().fn.croppie)
代替if(!$('#someID').data('croppie'))
if(!$('#someID').data('croppie'))
{
$('#someID').croppie({
viewport: {
width: 128,
height: 128
}
});
}
答案 1 :(得分:0)
croppie.js中仅注释第1487行的条件
if (element.className.indexOf('croppie-container') > -1){
throw new Error("Croppie: Can't initialize croppie more than once");
}