关于用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 相关文章推荐
远离JS灾难css灾难之 js私有函数和css选择器作为容器
Dec 11 Javascript
jQuery语法高亮插件支持各种程序源代码语法着色加亮
Apr 27 Javascript
jquery ajax,ashx,json的用法总结
Feb 12 Javascript
angularjs的select使用及默认选中设置
Apr 08 Javascript
Vue组件tree实现树形菜单
Apr 13 Javascript
vue 微信授权登录解决方案
Apr 10 Javascript
Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
Jun 10 Javascript
JS求1到任意数之间的所有质数的方法详解
May 20 Javascript
layui使用数据表格实现购物车功能
Jul 26 Javascript
vue使用一些外部插件及样式的配置代码
Nov 18 Javascript
用js编写留言板
Mar 17 Javascript
Vue数据双向绑定原理实例解析
May 15 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安全配置
2006/10/09 PHP
php使用Smarty的相关注意事项及访问变量的几种方式
2011/12/08 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
PHP使用CURL模拟登录的方法
2015/07/08 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
基于jquery实现的可以编辑选择的下拉框的代码
2010/11/19 Javascript
如何动态的导入js文件具体该怎么实现
2014/01/14 Javascript
JavaScript实现从数组中选出和等于固定值的n个数
2014/09/03 Javascript
js实现获取焦点后光标在字符串后
2014/09/17 Javascript
javascript 数组操作详解
2015/01/29 Javascript
浅述Javascript的外部对象
2016/12/07 Javascript
通过构造函数实例化对象的方法
2017/06/28 Javascript
Javascript中toFixed计算错误(依赖银行家舍入法的缺陷)解决方法
2017/08/22 Javascript
JavaScript for循环 if判断语句(学习笔记)
2017/10/11 Javascript
bmob js-sdk 在vue中的使用教程
2018/01/21 Javascript
Vue自定义toast组件的实例代码
2018/08/15 Javascript
Vue学习之常用指令实例详解
2020/01/06 Javascript
JavaScript实现图片合成下载的示例
2020/11/19 Javascript
关于element的表单组件整理笔记
2021/02/05 Javascript
python获取当前时间对应unix时间戳的方法
2015/05/15 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
python高阶爬虫实战分析
2018/07/29 Python
Django中多种重定向方法使用详解
2019/07/17 Python
Python3标准库之dbm UNIX键-值数据库问题
2020/03/24 Python
Python无损压缩图片的示例代码
2020/08/06 Python
jupyter notebook 写代码自动补全的实现
2020/11/02 Python
Python+unittest+DDT实现数据驱动测试
2020/11/30 Python
数学检讨书1000字
2014/02/24 职场文书
会计学毕业生求职信
2014/06/25 职场文书
行政答辩状范文
2015/05/21 职场文书
生产设备维护保养制度
2015/08/06 职场文书
阳光体育运动标语口号
2015/12/26 职场文书
立秋之描写立秋的作文(五年级)
2019/08/08 职场文书
使用MybatisPlus打印sql语句
2022/04/22 SQL Server
python的html标准库
2022/04/29 Python