2012-02-10 110 views
0

我正在處理一個項目,其中我需要href中圖像的寬度,當我單擊特定圖像時寬度(如果圖像顯示在警報中)。從href標籤中獲取圖像寬度而不是從img標籤

以下是我使用

<li> 
     <a href="<?php echo $pic;?>?id=<?php echo $id;?>&pic=<?php echo $picID;?>" data-title="" data-desc=" " data-rel="group2" data-bw="<?php echo $pic;?>" class="lightbox" id="plzx" > 
     <img src="<?php echo $pic;?>" width="160" height="160" title="Click To View"/></a>      
    </li> 

每當我試圖獲取圖像的寬度,它從img標籤圖像寬度不從在href的href和圖像代碼。因爲img標籤寬度已經定義爲「160」。有一個方法可以用於從<a href

獲取的圖像的寬度,我使用以下代碼基於該NIT工作

$('a').click(function() { 
     var image = $("<img />").attr("src", $(".lightbox").attr("href")); 
     $(document).append(image); 
     alert(image.height()); 
     alert(image.width()); 
     image.remove(); 
    }); 

的HTML代碼

 <li> 
        <a href="uploads/kareena-kapoor-144a_$1$Ni5.St4.$kPORmHFjcfGBJjn2KHSis0.jpg?id=3&pic=101" data-title="" data-desc=" " data-rel="group2" data-bw="uploads/kareena-kapoor-144a_$1$Ni5.St4.$kPORmHFjcfGBJjn2KHSis0.jpg" class="lightbox" id="plzx" > 

        <img src="uploads/kareena-kapoor-144a_$1$Ni5.St4.$kPORmHFjcfGBJjn2KHSis0.jpg" width="160" height="160" title="Click To View"/></a> 

    </li>   
+0

你在哪裏設置了'href'的寬度和高度? – diEcho 2012-02-10 10:17:54

+2

當你說「從href獲得寬度」你是什麼意思?你的意思是圖像的href包含圖像的寬度?像例如'',你想從字符串中獲得'200',或者你想加載圖像並確定圖像的寬度動態提供圖像? – DaveRandom 2012-02-10 10:20:07

回答

3

例如:

<a href="/path/to/big.jpg"><img src="/path/to/small.jpg"></a> 

這應做到:

$('a').click(function() { 
    $(new Image()).load(function() { 
     alert(this.width); // image width 
     alert(this.height); // image height 
    }).attr('src', this.href); 
}); 

更新:如果你需要使用寬度/高度,繼續你的程序,請嘗試:

var width,height; 
$('a').click(function() { 
    $(new Image()).load(function() { 
     width = this.width; 
     height = this.height, 
     onLoaded(); 
    }).attr('src', this.href); 
}); 
function onLoaded() { 
    alert(width); 
    alert(height); 
    // continue... 
} 

你並不需要追加到臨時圖像該文檔,但您需要在提取寬度/高度之前添加加載偵聽器。

請記住,AdBlock擴展可能會影響webkit中的提取結果,因此請在調試時將其關閉。

+2

它應該是'.attr('src',this.href);'我猜 – devnull69 2012-02-10 10:24:24

+0

@ devnull69當然,thanx! – David 2012-02-10 10:26:38

+0

非常感謝@David和devnull69的工作。你可以告訴我如何將寬度存儲在var中 – 2012-02-10 10:34:00