应用jQuery手风琴时获取Image的大小

时间:2012-09-06 06:17:46

标签: javascript jquery html image jquery-ui

在jQuery中,当元素不可见时width()返回0。 当我移除手风琴时,正确报告高度。我尝试将图像包装在div中并将div的显示设置为阻止,但这也不起作用。 当手风琴应用时,有什么替代方法可以找到图像的原始尺寸吗?

<div id="accordion">
    <h3>Click me</h3>
    <div>
         <div class="bg">
               <img src="your_img_url">
         </div>
    </div>      
    <h3>Click me</h3>
    <div>
         <div class="bg">
               <img src="your_img_url"/>
         </div>
    </div>
</div>
$(document).ready(function() {   
    $('#accordion').accordion({
        autoHeight: false,
        collapsible: true,
    });
    $("img").load(function() {
        alert($(this).height());
        alert($(this).width());
    });
});

2 个答案:

答案 0 :(得分:0)

适合我!

你有手风琴插件吗?

如果不是:http://bassistance.de/jquery-plugins/jquery-plugin-accordion/

是否已添加到脚本中?

  • 你应该删除最后,collapsible: true,
它应该是这样的:

$(document).ready(function() {
$('#accordion').accordion({ autoHeight: false, collapsible: true }); $("img").load(function() { alert($(this).height()); alert($(this).width()); }); });

但它无论如何都有效!

答案 1 :(得分:0)

在图像上设置特定的宽度和高度将返回该宽度和高度。这可以在CSS中完成,也可以使用width元素上的height<img>属性完成。

将图片更改为<img src="your_img_url" style="height: 20px; width: 20px;">应该有效。

如果您需要原始宽度,可以执行以下操作:

var img = $('img').clone().appendTo('body').hide();
img.load(function () {
    alert($(this).width());
    alert($(this).height());
});

This answer提供了有关如何获取原始尺寸的更详细信息。