关于用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 相关文章推荐
Prototype ObjectRange对象学习
Jul 19 Javascript
基于jQuery的投票系统显示结果插件
Aug 12 Javascript
JavaScript框架(iframe)操作总结
Apr 16 Javascript
基于BootStrap栅格栏系统完成网站底部版权信息区
Dec 23 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
Apr 11 jQuery
React Native验证码倒计时工具类分享
Oct 24 Javascript
angularjs 缓存的使用详解
Mar 19 Javascript
Vue Cli 3项目使用融云IM实现聊天功能的方法
Apr 19 Javascript
修改layui的后台模板的左侧导航栏可以伸缩的方法
Sep 10 Javascript
微信小程序 点击切换样式scroll-view实现代码实例
Oct 11 Javascript
原生JS实现无缝轮播图片
Jun 24 Javascript
原生js canvas实现鼠标跟随效果
Aug 02 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中替换换行符的几种方法小结
2012/10/15 PHP
详解php设置session(过期、失效、有效期)
2015/11/12 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
2016/12/25 PHP
php中get_object_vars()在数组的实例用法
2021/02/22 PHP
Javascript 阻止javascript事件冒泡,获取控件ID值
2009/06/27 Javascript
JS特殊函数(Function()构造函数、函数直接量)区别介绍
2013/05/19 Javascript
同域jQuery(跨)iframe操作DOM(实例讲解)
2013/12/19 Javascript
wap浏览自动跳转到wap页面的js代码
2014/05/17 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
JSON 的正确用法探讨:Pyhong、MongoDB、JavaScript与Ajax
2016/05/15 Javascript
jQuery实现拖拽页面元素并将其保存到cookie的方法
2016/06/12 Javascript
Javascript闭包与函数柯里化浅析
2016/06/22 Javascript
JavaScript如何对图片进行黑白化
2018/04/10 Javascript
浅谈如何使用webpack构建多页面应用
2018/05/30 Javascript
理顺8个版本vue的区别(小结)
2018/09/17 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
JS实现手写 forEach算法示例
2020/04/29 Javascript
[01:09:40]Newbee vs Pain 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
使用python存储网页上的图片实例
2018/05/22 Python
利用Pandas读取文件路径或文件名称包含中文的csv文件方法
2018/07/04 Python
使用python采集脚本之家电子书资源并自动下载到本地的实例脚本
2018/10/23 Python
计算机二级python学习教程(1) 教大家如何学习python
2019/05/16 Python
python:动态路由的Flask程序代码
2019/11/22 Python
python高阶函数map()和reduce()实例解析
2020/03/16 Python
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
怎样有效的进行自我评价
2013/10/06 职场文书
缴纳养老保险的证明
2014/01/10 职场文书
工作疏忽检讨书
2014/01/25 职场文书
纪念九一八事变演讲稿:牢记历史,捍卫主权
2014/09/14 职场文书
工作证明英文模板
2014/10/21 职场文书
公司介绍信范文
2015/01/31 职场文书
学习新党章心得体会2016
2016/01/15 职场文书
2019安全宣传标语大全
2019/08/14 职场文书
HTML中table表格拆分合并(colspan、rowspan)
2021/04/07 HTML / CSS
一次MySQL启动导致的事故实战记录
2021/09/15 MySQL
MySQL时区造成时差问题
2022/04/13 MySQL