首頁 >web前端 >js教程 >chrome下jq width()方法取值為0的解法_jquery

chrome下jq width()方法取值為0的解法_jquery

WBOY
WBOY原創
2016-05-16 16:46:591343瀏覽

http://photo.163.com/shixiaojian089/train/28002 這是網易的一個相冊,看到後想試著做做看。

在我的製作方法中,需要取得到每張照片的寬度,所以很自然就使用了jq的width()方法。在ff跟ie下運行問題不大,但是到了chrome上,就出現問題了。

使用alert排查,發現chrome下width方法取到的值都是0.這樣子的話,想來就是腳本運行到這的時候圖片根本沒加載好。問題應該出在$(function(){});上,因為這個方法只要求載入完dom就開始運作。那麼改成在onload下執行,果然這下可以了。不過這明顯不是很好的辦法,畢竟在onload下運行要等到整個文件全部內容全部加載好後再運行腳本。

上網搜尋一下後,發現這哥麼http://www.jb51.net/article/50402.htm也遇到了同樣的問題,在其的評論下方有一種解,可參考:

在要取得圖片寬高的地方用

複製程式碼 程式碼如下:

$img.load(function(){
var img_h = $img.height();
var img_w = $img.width();
}
}

這樣可以仍舊使用$(function(){});在需要圖片載入的地方對圖片物件呼叫load方法,避免等待整個檔案內容載入完畢。
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn