私は Jcrop jquery プラグインを使用しておりinitJcropBox()
、onload イベントで関数をトリガーしています。
ただし、この関数は、画像が完全に読み込まれる前にトリガーされています。これが問題を引き起こしています。jcropbox のサイズが正しく表示されなかったり、jcropbox がまったく表示されなかったりします。
線を引くとうまくいきます。しかし、解決策ではありません。
setTimeout('initJcropBox()',2000);
initJcropbox()
ブラウザで画像が完全にロード/レンダリングされた後に関数をトリガーするにはどうすればよいですか?
var api;
function initJcropBox(){
api = $.Jcrop('#cropbox',{
bgColor: 'black',
bgOpacity: .7,
onSelect: updateCoords,
onChange: updateCoords,
boxWidth: 400
});
api.animateTo([0,0,$('#cropbox').width(),$('#cropbox').height()]);
}
function insertImage(name) {
var img = new Image();
img.onload = initJcropBox;
img.src = name;
img.id = 'cropbox';
return img;
}
$('td.imageFile').live('click', function(e){
fileWithPath = "uploads/original/" + $(this).text();
$('#cropbox').remove();
$("#cropcontainer").empty().html(insertImage(fileWithPath));
});