jQuery中未捕获的引用错误

时间:2014-04-30 21:51:04

标签: javascript jquery

我有一些调用CropBox的jquery(动态地裁剪iamge)。一切似乎工作正常,没有错误,直到作物发生后,我得到一个错误:

ReferenceError: recalculateCropBoxHeight is not defined
recalculateCropBoxHeight();

相关代码是:

$('#open_admin_crop_window_button').on('click', function() {
myWidth = $('#cropbox').width();

recalculateCropBoxHeight();

function recalculateCropBoxHeight() {
    // CHECK IF myWidth HAS RETURNED A PERCENTAGE INSTEAD OF PIXELS
    if( myWidth < 100 ) {
        myWidth = $(window).width()/(100/myWidth);
    }


    if(imgw > myWidth) {
    widthRatio = imgw/myWidth;
    myHeight = imgh/widthRatio;
    } else {
        myHeight = imgh;
    }
    xsize = imgw;
    ysize = imgh;   
}

runCropBox();

});


function cropSuccess(data) {
    var returnedData = JSON.parse(data);
        if(!returnedData.error) {
            jcrop_api.destroy();
            recalculateCropBoxHeight(); // ERROR HAPPENING HERE
            runCropBox();                
        }
}

道歉,如果我的jquery / javascript不是很多。我对此很新。我很乐意就此提出建议,但如果你能看出为什么这段代码会给我错误,那将非常感激。

正如我所提到的,奇怪的是代码工作正常。??

2 个答案:

答案 0 :(得分:1)

recalculateCropBoxHeight在另一个函数中声明。它不是一个全球性的。它在您尝试从中调用的范围中不存在。

将其移到该功能之外。它似乎只触及全局变量。

答案 1 :(得分:1)

我相信你遇到了范围问题。因为您在on click事件中定义了函数,所以函数cropSuccess(data)函数不会将其视为有效函数。将recalculateCropBoxHeight功能拉出事件,它应该可以调用它。