关于用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 相关文章推荐
二级域名或跨域共享Cookies的实现方法
Aug 07 Javascript
javascript判断机器是否联网的2种方法
Aug 09 Javascript
js带缩略图的图片轮播效果代码分享
Sep 14 Javascript
详细总结Javascript中的焦点管理
Sep 17 Javascript
探究Vue.js 2.0新增的虚拟DOM
Oct 20 Javascript
解决npm安装Electron缓慢网络超时导致失败的问题
Feb 06 Javascript
JavaScript面试出现频繁的一些易错点整理
Mar 29 Javascript
记React connect的几种写法(小结)
Sep 18 Javascript
vue实现移动端省市区选择
Sep 27 Javascript
简单了解JavaScript sort方法
Nov 25 Javascript
vue中watch的用法汇总
Dec 28 Vue.js
JS实现公告上线滚动效果
Jan 10 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操作数组相关函数
2011/02/03 PHP
PHP SOCKET编程详解
2015/05/22 PHP
php常量详细解析
2015/10/27 PHP
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
JavaScript用JQuery呼叫Server端方法示例代码
2014/09/03 Javascript
HTML,CSS,JavaScript速查表推荐
2014/12/02 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
在Docker快速部署Node.js应用的详细步骤
2016/09/02 Javascript
JS实现给对象动态添加属性的方法
2017/01/05 Javascript
jQuery中将json数据显示到页面表格的方法
2018/05/27 jQuery
Node.js中Koa2在控制台输出请求日志的方法示例
2019/05/02 Javascript
解决vue v-for src 图片路径问题 404
2019/11/12 Javascript
使用JS实现动态时钟
2020/03/12 Javascript
mpvue实现微信小程序快递单号查询代码
2020/04/03 Javascript
NodeJS多种创建WebSocket监听的方式(三种)
2020/06/04 NodeJs
[02:28]DOTA2英雄基础教程 狼人
2013/12/23 DOTA
python实现字符串和日期相互转换的方法
2015/05/13 Python
python中异常捕获方法详解
2017/03/03 Python
python字典DICT类型合并详解
2017/08/17 Python
Python可变参数*args和**kwargs用法实例小结
2018/04/27 Python
Python迭代器定义与简单用法分析
2018/04/30 Python
python3基于TCP实现CS架构文件传输
2018/07/28 Python
Jupyter Notebook 远程访问配置详解
2021/01/11 Python
一款纯css3实现的漂亮的404页面的实例教程
2014/11/27 HTML / CSS
HTML5图片预览实例分享
2014/06/04 HTML / CSS
享受加州生活方式的时尚舒适:XCVI
2018/07/09 全球购物
美国购买新书和二手书网站:Better World Books
2018/10/31 全球购物
班组长岗位职责范本
2014/01/05 职场文书
电脑销售顾问自荐信
2014/01/29 职场文书
2014年开学第一课活动方案
2014/03/06 职场文书
交通安全寄语大全
2014/04/08 职场文书
企业年检委托书范本
2014/10/14 职场文书
敬业奉献模范事迹材料
2014/12/24 职场文书
公司仓管员岗位职责
2015/04/01 职场文书
学校勤俭节约倡议书
2015/04/29 职场文书