关于用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 相关文章推荐
简介AngularJS的视图功能应用
Jun 17 Javascript
怎么限制input的text里输入的值只能是数字(正则、js)
May 16 Javascript
Angular使用ng-messages与PHP进行表单数据验证
Dec 28 Javascript
动态统计当前输入内容的字节、字符数的实例详解
Oct 27 Javascript
以v-model与promise两种方式实现vue弹窗组件
May 21 Javascript
Vue项目全局配置页面缓存之按需读取缓存的实现详解
Aug 01 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
Nov 29 Javascript
JS合并两个数组的3种方法详解
Oct 24 Javascript
JavaScript中继承原理与用法实例入门
May 09 Javascript
Vue组件间数据传递的方式(3种)
Jul 13 Javascript
vue项目,代码提交至码云,iconfont的用法说明
Jul 30 Javascript
jquery实现广告上下滚动效果
Mar 04 jQuery
写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环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
php计算数组相同值出现次数的代码(array_count_values)
2015/01/20 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
自动完成JS类(纯JS, Ajax模式)
2009/03/12 Javascript
extjs 3.31 TreeGrid实现静态页面加载json到TreeGrid里面
2013/04/02 Javascript
nodejs获取本机内网和外网ip地址的实现代码
2014/06/01 NodeJs
浅谈javascript中自定义模版
2015/01/29 Javascript
javascript获取系统当前时间的方法
2015/11/19 Javascript
jQuery实现div随意拖动的实例代码(通用代码)
2016/01/28 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
JS实现点击事件统计的简单实例
2016/07/10 Javascript
Angular表单验证实例详解
2016/10/20 Javascript
AngularJS控制器之间的通信方式详解
2016/11/03 Javascript
JS高级运动实例分析
2016/12/20 Javascript
简单的渐变轮播插件
2017/01/12 Javascript
jQuery基本筛选选择器实例代码
2017/02/06 Javascript
Vue.js 的移动端组件库mint-ui实现无限滚动加载更多的方法
2017/12/23 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
使用layui 渲染table数据表格的实例代码
2018/08/19 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
[01:14:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS Orenda
2014/05/22 DOTA
Python中比较特别的除法运算和幂运算介绍
2015/04/05 Python
在python中将list分段并保存为array类型的方法
2019/07/15 Python
python Django编写接口并用Jmeter测试的方法
2019/07/31 Python
Python实现的爬取豆瓣电影信息功能案例
2019/09/15 Python
python UDF 实现对csv批量md5加密操作
2021/01/01 Python
CSS教程:CSS3圆角属性
2009/04/02 HTML / CSS
美国领先的家庭健康检测试剂盒提供商:LetsGetChecked
2019/03/18 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
幼儿园大班毕业教师寄语
2014/04/03 职场文书
2015年安全生产月活动总结
2015/03/26 职场文书
教师节倡议书2015
2015/04/27 职场文书
《雀魂PONG☆》4月1日播出 PV角色设定情报
2022/03/20 日漫
python神经网络 使用Keras构建RNN训练
2022/05/04 Python
Go语言入门exec的基本使用
2022/05/20 Golang