在调用变量之前设置变量 - Javascript

时间:2014-05-01 03:41:49

标签: javascript jquery

我正在创建一个使用JCrop的商店

现在,jcrop设置的宽高比将根据他们对问题2的回答而改变,因为画布的尺寸需要更改。

你可以通过上传问题4下的照片来看到这一点。我遇到的问题是,如果我在上传图像并初始化JCrop之后更改了问题2,这非常有效。但是,第一次初始化时,它将使用平方纵横比(1),这是JCrop的默认设置。

默认情况下如何使用问题2设置的宽高比?

    $('select[name=size]').click(function() {
    getPrice();
    });

$('select[name=size]').change(function () {
    getPrice($(this).val());
});
//custom function to change aspect ratio depending on answer on question 2
function getPrice(aspectRatioStr) {
    var parts = aspectRatioStr.split('x'),
        num = parseInt(parts[0]),
        denom = parseInt(parts[1]),
        newAspectRatio = num / denom;
    if (!jcrop_api) return;
    jcrop_api.setOptions({
        aspectRatio: newAspectRatio
    });
    jcrop_api.focus();
}

            // standard jcrop initialization
            $('#preview').Jcrop({
                minSize: [32, 32], // min crop size
                aspectRatio : 1, // keep aspect ratio 1:1
                bgFade: true, // use fade effect
                bgOpacity: .3, // fade opacity
                onChange: updateInfo,
                onSelect: updateInfo,
                onRelease: clearInfo,
                boxWidth: 765
            }, function(){

                // use the Jcrop API to get the real image size
                var bounds = this.getBounds();
                boundx = bounds[0];
                boundy = bounds[1];

                // Store the Jcrop API in the jcrop_api variable
                jcrop_api = this;

            getPrice($('#name').val());
            });
        };
    };

1 个答案:

答案 0 :(得分:1)

你的问题在这里:

getPrice($('#name').val());

将其替换为:

getPrice($('select[name=size]').val());