关于用Jquery的height()、width()计算动态插入的IMG标签的宽高的问题


Posted in Javascript onDecember 08, 2010

先来看现象:

<div id="cc"></div> 
<script> 
$(document).ready(function() { 
$("#cc").append("<div id='aa' style='width:200px;height:200px;' /></div>"); 
alert($("#aa").width()); 
}); 
</script>

结果为:200
所有浏览器都得到正确的结果

把插入的元素改为IMG

<div id="cc"></div> 
<script> 
$(document).ready(function() { 
$("#cc").append("<img id='aa' src='https://3water.com/images/logo.gif' />"); 
alert($("#aa").width()); 
}); 
</script>

(注:image1.jpg的实际宽为693)

结果为:
Opera:34
Firefox:0
IE:28
Chrome:0
Safari:0

再F5刷新一下,结果为:
Firefox:693
IE:693
Opera:693
Chrome:0
Safari:0
Safari和Chrome始终为0。

应该可以理解为在图片没有加载或呈现完成时计算出的图片宽高也是不正确的,刷新后应该是有了缓存,所以结果就正确了,但为什么Chrome

和Safari始终都为0呢?而且IE和OPERA居然一开始还会计算出一个错误值出来的。
改成下面这样就都好了:

<div id="cc"></div> 
<script> 
$(document).ready(function() { 
$("#cc").append("<img id='aa' src='https://3water.com/images/logo.gif' />"); 
window.setTimeout(function(){alert($("#aa").width()); },100); 
}); 
</script>

有解决过此问题或有关于此问题更详细的认识的大鸟还望不吝赐教..
$(document).ready(function() { 
$("#cc").append("<img id='aa' />"); 
$("#aa").load(function(){ 
alert($("#aa").width() 
}).attr("src", "https://3water.com/images/logo.gif"); 
});
Javascript 相关文章推荐
同域jQuery(跨)iframe操作DOM(实例讲解)
Dec 19 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
Jan 25 Javascript
如何书写高质量jQuery代码(使用jquery性能问题)
Jun 30 Javascript
javascript实现博客园页面右下角返回顶部按钮
Feb 22 Javascript
简单介绍JavaScript的变量和数据类型
Jun 03 Javascript
使用Javascript实现选择下拉菜单互移并排序
Feb 23 Javascript
表单中单选框添加选项和移除选项
Jul 04 Javascript
JS中用try catch对代码运行的性能影响分析
Dec 26 Javascript
Canvas放置反弹效果随机图形(实例)
Aug 17 Javascript
jq.ajax+php+mysql实现关键字模糊查询(示例讲解)
Jan 02 Javascript
基于three.js实现的3D粒子动效实例代码
Apr 09 Javascript
Node.js API详解之 vm模块用法实例分析
May 27 Javascript
写js时遇到的一些小问题
Dec 06 #Javascript
javascript定义函数的方法
Dec 06 #Javascript
javascript中的一些注意事项 更新中
Dec 06 #Javascript
JavaScript Accessor实现说明
Dec 06 #Javascript
关于Javascript模块化和命名空间管理的问题说明
Dec 06 #Javascript
javascript处理table表格的代码
Dec 06 #Javascript
菜鸟javascript基础资料整理3 正则
Dec 06 #Javascript
You might like
PHP学习之PHP表达式
2006/10/09 PHP
php下的权限算法的实现
2007/04/28 PHP
PHP中的生成XML文件的4种方法分享
2012/10/06 PHP
PHP中使用cURL实现Get和Post请求的方法
2013/03/13 PHP
基于php下载文件的详解
2013/06/02 PHP
php堆排序实现原理与应用方法
2015/01/03 PHP
Laravel用户授权系统的使用方法示例
2018/09/16 PHP
PHP单文件上传原理及上传函数的封装操作示例
2019/09/02 PHP
如何重写Laravel异常处理类详解
2020/12/20 PHP
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
JQuery日期插件datepicker的使用方法
2016/03/03 Javascript
js给table赋值的实例代码
2016/10/13 Javascript
Node.js查找当前目录下文件夹实例代码
2017/03/07 Javascript
使用 NodeJS+Express 开发服务端的简单介绍
2017/04/07 NodeJs
bootstrap实现二级下拉菜单效果
2017/11/23 Javascript
webstorm和.vue中es6语法报错的解决方法
2018/05/08 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
vue中使用v-for时为什么不能用index作为key
2020/04/04 Javascript
在Vue中使用Viser说明(基于AntV-G2可视化引擎)
2020/10/28 Javascript
Python统计单词出现的次数
2018/04/04 Python
python实现自主查询实时天气
2018/06/22 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
python requests包的request()函数中的参数-params和data的区别介绍
2020/05/05 Python
将不规则的Python多维数组拉平到一维的方法实现
2021/01/11 Python
css3遮罩层镂空效果的多种实现方法
2020/05/11 HTML / CSS
中国最大的团购网站:聚划算
2016/09/21 全球购物
EM Cosmetics官网:由彩妆大神Michelle Phan创办的独立品牌
2020/04/27 全球购物
开放系统互连参考模型
2016/06/29 面试题
如何进行Linux分区优化
2013/02/12 面试题
2014高考励志标语
2014/06/05 职场文书
2014年学校工会工作总结
2014/12/06 职场文书
党支部评议意见
2015/06/02 职场文书
服装店员工管理制度
2015/08/07 职场文书
《认识年月日》教学反思
2016/02/19 职场文书
话题作文之自信作文
2019/11/15 职场文书