محاولة استخدام JCROP API
-
30-09-2019 - |
سؤال
أنا أستخدم JCROP ولا يمكنني تغيير نسبة العرض إلى التحديد بناءً على إدخال المستخدم ، لذلك أعتقد أن الطريق للذهاب هو استخدام JCROP API.
الشيء هو أنه إذا استخدمته كدالة jQuery ، فإنه يعمل بشكل جيد:
$('#cropbox_full').Jcrop({
onChange: update_full_dimensions,
onSelect: update_full_dimensions
});
ولكن إذا استخدمته استدعاء وظيفة JCROP لم تعد صورتي يتم عرضها:
var api = $.Jcrop('#cropbox_full', options);
هل هو علة jcrop؟
راجع للشغل أنا أستخدم Chrome و JQuery 1.4.2
المحلول
يبدو أن هناك بعض الأخطاء أثناء استخدام Chrome لأنه في Firefox يعمل هذا:
$.Jcrop($('#cropbox_full'),options);
بعد تعيين JCROP ، يمكن الوصول إلى مثل هذا ويمكن إعادة تعيين الخيارات ، وهذا يعمل مع Chrome:
$('#cropbox_full').Jcrop(options);
var jcrop = $('#cropbox_full').data('Jcrop');
jcrop.setOptions(newOptions);
نصائح أخرى
يمكن أن يكون هذا خطأ في JCROP ولكن يمكنك كتابة التعليمات البرمجية الخاصة بك بطريقة تعمل على Google Chrome و FF و IE و Safari. للقيام بذلك ، بدلاً من:
$.Jcrop($('#cropbox_full'),options);
استخدم شيئًا كهذا:
$(document).ready(function () {
$('#cropbox_full').Jcrop({
onSelect: storeCoords,
setSelect: [0, 0, 114, 137],
aspectRatio: 114 / 137,
minSize: [114, 137]
});
});
إذا كنت تستخدم $.Jcrop()
مباشرة ، يتوقع كائن jQuery أو عنصر.
مثال الاستخدام سيبدو هكذا:
$.Jcrop($('#cropbox_full'),options);
واجهت مشكلة مماثلة اليوم. لقد قمت بحلها عن طريق تهيئة API JCROP في
$(window).load(function() { ... });
بدلاً من
$(document).ready(function() { ... });
وهو ممارسة شائعة في jQuery.