1

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());
    });
});
4

2 に答える 2

0

画像に特定の幅と高さを設定すると、その幅と高さが返されます。これは、CSS で行うか、要素のwidthandheight属性を使用して行うことができます。<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());
});

この回答には、元のサイズを取得する方法に関するより詳細な情報が含まれています。

于 2012-09-06T07:04:39.590 に答える
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()); }); });

しかし、それはとにかく動作します!

于 2012-09-06T06:39:11.797 に答える