关于用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 相关文章推荐
Bootstrap媒体对象的实现
May 01 Javascript
jQuery实现ajax的叠加和停止(终止ajax请求)
Aug 08 Javascript
javascript验证内容为数字以及长度为10的简单实例
Aug 20 Javascript
JavaScript制作弹出层效果
Dec 02 Javascript
javascript 闭包详解及简单实例应用
Dec 31 Javascript
JS实现的抛物线运动效果示例
Jan 30 Javascript
Node.js爬取豆瓣数据实例分析
Mar 05 Javascript
ES6之模版字符串的具体使用
May 17 Javascript
微信小程序实现自上而下字幕滚动
Jul 14 Javascript
jquery层次选择器的介绍
Jan 18 jQuery
vue使用自定义指令实现拖拽
Jan 29 Javascript
Vue-cli3生成的Vue项目加载Mxgraph方法示例
May 31 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
如何让搜索引擎抓取AJAX内容解决方案
2014/08/25 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
PHP中的traits简单使用实例
2015/05/13 PHP
详解PHP实现执行定时任务
2015/12/21 PHP
PHP面向对象程序设计(OOP)之方法重写(override)操作示例
2018/12/21 PHP
jQuery each()方法的使用方法
2010/03/18 Javascript
jQuery 打造动态渐变按钮 详细图文教程
2010/04/25 Javascript
Jquery写一个鼠标拖动效果实现原理与代码
2012/12/24 Javascript
jquery 事件冒泡的介绍以及如何阻止事件冒泡
2012/12/25 Javascript
JS OffsetParent属性深入解析
2014/01/13 Javascript
JS嵌套函数调用上下文的问题解决
2014/03/26 Javascript
javascript 获取HTML DOM父、子、临近节点
2014/06/16 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
JQuery EasyUI Layout 在from布局自适应窗口大小的实现方法
2016/05/28 Javascript
文本框只能输入数字的js代码(含小数点)
2016/07/10 Javascript
微信小程序实现图片上传功能
2018/05/28 Javascript
JavaScript fetch接口案例解析
2018/08/30 Javascript
js正则匹配多个全部数据问题
2019/12/20 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
Python使用chardet判断字符编码
2015/05/09 Python
Python set常用操作函数集锦
2017/11/15 Python
Python实现去除列表中重复元素的方法小结【4种方法】
2018/04/27 Python
对Python的交互模式和直接运行.py文件的区别详解
2019/06/29 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
浅谈如何使用python抓取网页中的动态数据实现
2020/08/17 Python
纯CSS3实现给头像加个光芒四射且旋转的背景动画效果
2014/05/07 HTML / CSS
任意一块网页内容实现“活”的背景(目前火狐浏览器专有)
2014/05/07 HTML / CSS
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
美国零售商店:Blue&Cream
2017/04/07 全球购物
T3官网:头发造型工具
2019/12/26 全球购物
希腊品牌鞋类销售网站:epapoutsia.gr
2020/03/18 全球购物
会话Bean的种类
2013/11/07 面试题
残疾人创业典型事迹
2014/02/01 职场文书
卫生系统先进事迹
2014/05/13 职场文书
水利水电专业自荐信
2014/07/08 职场文书
2015年网管个人工作总结
2015/05/22 职场文书