2012-03-20 3 views
1

Я уже некоторое время борюсь с этой проблемой. Я пока не нашел ответа/решения, и я надеюсь, что один из вас может помочь мне.imgAreaВыбрать + изменить aspectRatio на лету

Ситуация такова: я использую imgAreaSelect для обрезки изображения. Но у пользователя есть возможность изменить соотношение сторон. Это путем ввода ширины и высоты (например, 100: 20).

Вы можете найти мой код ниже:

var ias = jQuery('#photo').imgAreaSelect({instance:true}); 
ias.setOptions({aspectRatio:'100:20'}); 
ias.update(); 

Так у меня есть экземпляр imgAreaSelect в вар ias. Но почему-то я не могу изменить настройки через SetOptions(). Ошибка я получаю следующее:

Uncaught TypeError: Object # has no method 'getOwnPropertyNames'

Но странно это, если я console.dir(ias) я прекрасно вижу свой объект в консоли. Все остальное работает так, как должно. Кадрирование работает отлично, я просто не могу редактировать свои варианты через setOptions().

Я что-то забыл?

Заранее благодарен! Steve

ответ

0

комплект setOptions до true. См. Пример кода:

var own = $('#crop_img').imgAreaSelect({x1: 0, y1: 0, x2: $('#crop_img').width(), y2: $('#crop_img').height(), 
    handles: true, instance:true, 
    aspectRatio:"{{ $javascript->ratio }}", 
    resizable:true, 
    persistent:true, 
    **setOptions:true**, 
    imageWidth:"{{ $javascript->width }}", 
    imageHeight:"{{ $javascript->height }}", 
+0

Не могли бы вы отформатировать код, а также добавить объяснение, почему это сработает? – prabugp

+0

Я узнал, просто попробовав и отладив функцию onInit. OnInit: функция (IMG, выбор) { \t \t $ ('# ratio_id') на ('изменения', функция() { соотношение \t \t \t = this.value; \t \t \t own.setOptions ({AspectRatio. : отношение}); \t \t \t собственный.update(); \t \t}); \t}, –

Смежные вопросы