2017-03-02 77 views
0

當我選擇一個圖像時,它已經打開了一個默認的裁剪區域,我使用(setSelect)方法進行了設置,如果在裁剪區域沒有任何改變的情況下確認裁切,作物在我的數據庫中導致錯誤,我想我沒有填充JCrop選擇變量。我也注意到它有一個方法來填充這些變量(onSelect:selectcanvas),但它只在修改裁剪區域後調用。JCrop未填充的選擇變量

這裏是我的JCrop腳本

$("#canvas").Jcrop({ 
    minSize: [45, 45], 
    maxSize: [1200, 1200], 
    bgColor: 'white', 
    bgOpacity: .2, 
    setSelect: [150, 150, 50, 50], 
    aspectRatio: 1, 
    allowSelect: false, 
    onSelect: selectcanvas, 
    onRelease: clearcanvas, 
    boxWidth: crop_max_width, 
    boxHeight: crop_max_height, 
}, function() { 
    jcrop_api = this; 
}); 
    clearcanvas(); 
} 

而ONSELECT方法

function selectcanvas(coords) { 
    prefsize = { 
    x: Math.round(coords.x), 
    y: Math.round(coords.y), 
    w: Math.round(coords.w), 
    h: Math.round(coords.h) 
    }; 
} 

有什麼辦法開始與一些默認值的變量?

回答

0

更改此:

$("#canvas").Jcrop({ 
    minSize: [45, 45], 
    maxSize: [1200, 1200], 
    bgColor: 'white', 
    bgOpacity: .2, 
    setSelect: [150, 150, 50, 50], 
    aspectRatio: 1, 
    allowSelect: false, 
    onSelect: selectcanvas, 
    onRelease: clearcanvas, 
    boxWidth: crop_max_width, 
    boxHeight: crop_max_height, 
}, function() { 
    jcrop_api = this; 
}); 
    clearcanvas(); 
} 

要這樣:

$("#canvas").Jcrop({ 
    onChange: selectcanvas, 
    onSelect: selectcanvas, 
    onRelease: clearcanvas, 
    minSize: [45, 45], 
    maxSize: [1200, 1200], 
    bgColor: 'white', 
    bgOpacity: .2, 
    setSelect: [150, 150, 50, 50], 
    aspectRatio: 1, 
    allowSelect: false, 
    boxWidth: crop_max_width, 
    boxHeight: crop_max_height, 
}, function() { 
    jcrop_api = this; 
}); 
    clearcanvas(); 
} 

這將確保你的函數被首先定義,這將確保當用戶將圖像以你的輸入更改事件將被調用並且您的變量將被初始化。