【问题标题】:getting the image width from the href tag instead from img tag从 href 标签而不是从 img 标签获取图像宽度
【发布时间】:2012-03-02 19:45:23
【问题描述】:

我正在做一个项目,在该项目中,当我单击特定图像时,我需要来自 href 的图像宽度,如果图像显示在警报中,则需要宽度。

以下是我正在使用的href和图片代码

    <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 获取图像宽度。因为 img 标签宽度已经定义为 "160" 。有没有办法从&lt;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>           

【问题讨论】:

标签: php javascript jquery image width


【解决方案1】:

基于以下内容:

<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 中提取的结果,因此请在调试时将其关闭。

【讨论】:

  • 我猜应该是.attr('src', this.href);
  • 非常感谢@David 和 devnull69 它的工作。你能告诉我如何将宽度存储在var中
  • @SakshiSharma 你不能“存储”它,因为它只能在负载处理程序中使用。如果您需要继续您的程序,请使用处理程序作为起点(请参阅我的编辑)
  • 您可以在 .load() 中使用 myvar = this.width; 来完成此操作
  • 嗯。这是否可以保持该值直到我在该页面中,我必须使用该图像值来为灯箱提供宽度。
猜你喜欢
  • 2018-06-23
  • 1970-01-01
  • 1970-01-01
  • 2015-12-17
  • 2014-11-15
  • 1970-01-01
  • 2014-07-05
  • 2010-10-27
  • 1970-01-01
相关资源
最近更新 更多