我使用jQuery + AJAX上传图片,然后生成html来显示它。成功上传图像后,AJAX获取图像文件名。我想在实际加载之前获得图像的尺寸比。否则,如果我加载图片并使用.width()
和.height()
,则会返回0,因为加载图片需要一些时间。
jQuery中有任何函数,如PHP的getimagesize(filename)
吗?
*编辑*
抱歉这个混乱!我希望js中的函数不在PHP中,函数就像PHP的getimagesize(filename)
。
*再次修改*
我在这里发布简化代码:
var html = '<img id="photo' + id + '" src="' + filename + '" />';
$('#photos li:last').html(html);
var e = $('#photo' + id);
(e.width() / e.height() > 1.6) ? e.attr('width', 160): e.attr('height', 100);
此处的问题是.width()
,.height()
如果使用clientWidth
和clientHeight
,则均为0.,它们是undefined
。
答案 0 :(得分:5)
var e = $('#photo' + id);
e.load(function() {
(e.width() / e.height()) > 1.6 ? e.attr('width', 160): e.attr('height', 100);
});
答案 1 :(得分:2)
在询问此问题之前,您是否检查过PHP手册?在PHP中有一个功能正是如此,您可以使用您猜到的确切名称:
答案 2 :(得分:1)
为什么不从php文件传递json对象我假设您正在上传图像? 如状态(上传,错误等),x(宽度),y(高度)等
然后你可以在ajax回调中使用它。