我想显示一个尽可能大的图像。当用户在节目快照中点击它时,它会通过ajax加载,并且应该调整大小。再次,调整大小是没有问题的,如果我使用它通过一个点击事件,它完美的作品,但它没有正确触发,如果我有这样的:jQuery:调整大小加载后的图像 - 调整大小已经起作用,但不会触发
$('.thumbnail').click(function() {
id = $(this).attr('id');
$('#picbox').fadeIn(fadeSpeed);
$('#picture').load("/propfe/ajax/picture/" + id);
$('#picture').fadeIn(fadeSpeed);
$('#bigpic').ready(function() {
var browserHeight = $(window).height() - 200;
var browserWidth = $(window).width() - 200;
var height = $('#bigpic').height();
var width = $('#bigpic').width();
var picRatio = width/height;
var windowRatio = browserWidth/browserHeight;
if(picRatio < windowRatio) {
$('#bigpic').css({ "height": browserHeight + "px" });
}
if(picRatio > windowRatio) {
$('#bigpic').css({ "width": browserWidth + "px" });
}
});
$('.pic_loader').fadeOut(fadeSpeed, function() {
$('.pic_loaded').fadeIn(fadeSpeed);
});
});
到目前为止,我我想我会尽快解释它,也许你不需要阅读这一段:代码是通过点击缩略图来触发的。首先,它获取图片的id,应该加载并淡入div,所有内容都将加载并加载gif。之后,ajax-request将被发送,结果会淡入,准备就绪时,图像(id = bigpic)应该调整大小。最后一行不是很有趣,它们只是淡出加载gif并在其余所有内容中消失,代码正在生成。
当我试图给出一些变量时,会在任何内容消失之前给出警报,并且图片的宽度和高度为空,所以我认为代码在图片加载之前触发。
那么它是如何可能的,它只是执行,如果图像完全加载?
我不知道,但你可以尝试把代码“图像准备好,获得高度和宽度o f准备好的图像“在jQuery的'.load()'函数的回调中。 参考http://api.jquery.com/load回调'.load()' – 2012-03-21 11:17:28
不幸的是它也无法正常工作... – StoryTeller 2012-03-21 14:28:33
尝试更改'$('#picture')。load(“/ propfe/ajax/picture /“+ id)'到'$('#bigpic')。load(”/ propfe/ajax/picture /“+ id)' 或者显示一些你用过的html。 – 2012-03-21 14:31:37