试图使用Jcrop api

时间:2010-10-14 01:46:01

标签: jquery jquery-plugins jcrop

我正在使用Jcrop,我不想根据用户输入动态更改选择的宽高比,所以我想要采用的方法是使用Jcrop api。

如果我将它用作jquery函数,那就可以了:

$('#cropbox_full').Jcrop({
  onChange: update_full_dimensions,
  onSelect: update_full_dimensions
});

但如果我使用它调用Jcrop函数,我的图像将不再显示:

var api = $.Jcrop('#cropbox_full', options);

这是一个Jcrop的错误吗?

BTW我正在使用chrome和jquery 1.4.2

4 个答案:

答案 0 :(得分:2)

使用chrome时似乎存在一些错误,因为在firefox中这有效:

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

设置jCrop之后,可以像这样访问它并重置选项,这适用于chrome:

$('#cropbox_full').Jcrop(options);
var jcrop = $('#cropbox_full').data('Jcrop');
jcrop.setOptions(newOptions);

答案 1 :(得分:2)

这可能是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 :(得分:1)

如果您直接使用$.Jcrop(),则需要jquery对象或元素。

用法示例如下所示:

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

答案 3 :(得分:1)

我今天遇到了类似的问题。我通过初始化

中的Jcrop api解决了这个问题
$(window).load(function() { ... });

而不是

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

这是jQuery中的常见做法。