2017-03-20 90 views
0

我想使用JQuery創建一個彈出窗口來包含圖像。點擊鏈接時,窗口將顯示。窗口的大小取決於圖像大小。JQuery爲圖像創建彈出窗口,通過URL獲取圖像的大小

有幾個鏈接。該鏈接目標是「_new」,所以鏈接被點擊的情況下,jQuery是:

jQuery('a[target^="_new"]').click(function() { 

     return openWindow(this.href); 
    }); 

然後在彈出的功能將是:

function openWindow(url) { 
     width = $("img[src$='" + url + "']").width; 
     height= $("img[src$='" + url + "']").height; 
    window.open(url , 'newwindow', 'width=' + width + ', height=' + height); 
} 

當我調試,我發現網址是正確的。但是我無法通過它的URL獲取圖像元素(然後我無法獲得它的寬度和高度來設置彈出窗口的大小)。任何人都可以幫助我解決這個問題?謝謝!

+0

問題可能是'.width'和'.height'之後缺少'()'。 jQuery對象沒有這樣的屬性,試試這個'$(「img [src $ ='」+ url +「']」)。width()'and'$(「img [src $ ='」+ url +「 「]「)。高度()'。 – Hopeless

回答

0

的問題是,你只能計算圖像後的寬度和高度上加載到瀏覽器內存

爲了使它工作,你就必須在Load事件處理程序進行計算。

var img = $('<img src="'+ url +'"/>').load(function(){ 
    var width = this.width; 
    var height = this.height; 
}); 
+0

當它運行到'var img = $('').load(function()'時,它說'對象不支持屬性或方法'indexOf'',這很奇怪,因爲我從來不會調用這個方法。我正在使用.net aspx頁面,這是原因嗎? – DennisL