Попытка использовать Jcrop API - PullRequest
3 голосов
/ 14 октября 2010

Я использую 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

Ответы [ 4 ]

2 голосов
/ 12 декабря 2011

Это может быть ошибкой в ​​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]
            });
        });
2 голосов
/ 14 октября 2010

Кажется, что при использовании chrome возникает какая-то ошибка, потому что в Firefox это работает:

$.Jcrop($('#cropbox_full'),options);

После того, как jCrop был установлен, к нему можно получить доступ следующим образом, а параметры можно сбросить, это работает с chrome:

$('#cropbox_full').Jcrop(options);
var jcrop = $('#cropbox_full').data('Jcrop');
jcrop.setOptions(newOptions);
1 голос
/ 18 июля 2011

У меня была похожая проблема сегодня.Я решил это путем инициализации API Jcrop в

$(window).load(function() { ... });

вместо

$(document).ready(function() { ... });

, что является обычной практикой в ​​jQuery.

1 голос
/ 14 октября 2010

Если вы используете $.Jcrop() напрямую, он ожидает объект jquery или элемент.

Пример использования будет выглядеть следующим образом:

$.Jcrop($('#cropbox_full'),options);
...