Я работаю с библиотекой jQuery JCrop, я предоставляю предварительный просмотр изображения после загрузки файла с помощью управления файлами HTML.Как настроить предварительный просмотр JQuery JCrop для обрезки после загрузки файла?
вид части (демо-данные)
<input type="file" id="photograph" />
<img src="#" id="target" />
код Javascript
// for setting img src
function readURL(input) {
console.log("readURL");
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#target').attr('src', e.target.result);
console.log("inside if =>"+e.target.result);
}
console.log("outside IF");
reader.readAsDataURL(input.files[0]);
}
}
// for setting pre-selected cropping area
function setProperties(){
console.log("set properties");
$('#target').Jcrop({
setSelect: [0,12,23,43]
});
}
// on change event for fileupload
$("#photograph").change(function(){
console.log("change event called!");
readURL(this);
setProperties();
});
выход
change event called!
readURL
outside IF
set properties
inside if=>data:image/jpeg;base64,/9j/4gIcSUNDX1BST0ZJTEUAAQEAAAIMbGNtcwIQAABtbnRyUkdC…sXK2t+4UdmuSVl64hb2gMHh1Nhm83DAdQJniIM6eZUxzuYCR2my3FSwGpVbzBdwlgrrc/
Я хочу установить некоторые свойства после загрузки файла изображения, но «внутри, если => "[см. вывод, опубликованный выше], вызывается в самом конце. так почему это происходит? и Как мне решить эту проблему?
Это происходит потому, что 'reader.onload' требуется время для загрузки исходного изображения. Set Properties внутри 'onload', поэтому может работать отлично. –
Так что же взлом для решения этой проблемы? – piechuckerr
Вызов 'setProperties()' внутри 'reader.onload'. –