解决:jquery chrome 获取图片所在div高度

解决:jquery chrome 获取图片所在div高度

1565发表于2016-07-15

今天一个朋友问我为什么360浏览器在极速模式下用jquery获取图片所在的高度div高度为0?360在极速模式下是用的chrome谷歌浏览器内核,按F12出来的调试就知道。

它原来的代码如下:


js:

查了一上资料叫他把

$(function(){

....

})

改成:

$(window).load(function(){

...

})

问题就解决了。

========参考资料=========http://blog.csdn.net/kongjiea/article/details/20207323

最近在看Learning jQuery英文版原著,正因为一边翻译,一边阅读,所以每一页都看的很仔细,于是终于仔细阅读体会了以下两种常用的jquery事件加载的方法 

代码如下:

写法一:$(function(){}); 

写法二:window.onload=function(){}  ; 或者$(window).load(function(){});


$(window).load(function(){
... //此处省略N行
var w = $(this).width();
... //此处省略N行
});




第一种写法呢,是在DOM结构渲染完成以后调用的,这时候网页中一些资源还没有加载,比如图片等资源,但是DOM结构已经渲染成功了 

第二种写法,是在网页DOM结构渲染完成,而且资源已经加载成功以后调用的。 


有没有感受出区别来呢,一个是在资源没有加载的时候调用的,一个是在资源加载结束,页面已经渲染之后调用的,所以当我们在$(function(){})调用$('img').width()的时候,由于图片还没有加载,所以这时候<img>标签的高度就是0,所以返回值就是0。但是当你用window.onload=function(){}调用的时候,图片已经加载出来了,所以这时候就能得到图片的高度。 


所以记得,$(function(){})是在DOM渲染结束,资源还没有加载的时候执行的,如果你想获取到一些资源的信息,这个时候是没有办法的哦。



小编蓝狐