5

レスポンシブ画像の高さを見つける次のjQueryがあります:

        $(document).ready( function() { //Fires when DOM is loaded
            getImageSizes();
            $(window).resize(function() { //Fires when window is resized
                getImageSizes();
            });
        });
        function getImageSizes() {
            $("#slideshow img").each(function() {
                var $height = $(this);
                console.log( $height.height() );

            });

        }

私の目標は、$height 変数を使用して、スライドショーの ID で div の高さを指定することです。

私はこれを使用できると思います:

$('#slideshow').css({'height': $height + 'px;'});

ただし、機能していません (高さは指定されていません)。

上記の行を次のように含めました。

        $(document).ready( function() { //Fires when DOM is loaded
            getImageSizes();
            $(window).resize(function() { //Fires when window is resized
                getImageSizes();
            });
        });
        function getImageSizes() {
            $("#slideshow img").each(function() {
                var $height = $(this);
                console.log( $height.height() );

                $('#slideshow').css({'height': $height + 'px;'});
            });

        }

足りないものはありますか?

4

4 に答える 4

6

をログに記録していますが、CSS で$height.height()のみ使用しています。$height

変数に適切な名前を付けると、より簡単になります:p

var $height = $(this).height();
$("#slideshow").css({"height":$height+"px"});

または私の好み:

document.getElementById('slideshow').style.height = this.height+"px";
于 2013-03-04T19:05:14.057 に答える
1

$heightjQuery変数です。を呼び出して高さを取得する必要があります.height()

$('#slideshow').css({'height': $height.height() + 'px'});

または、代わりに実際の高さを変数として保存することもできます。

var height = $(this).height();
$('#slideshow').css({'height': height  + 'px'});
于 2013-03-04T19:04:41.840 に答える
1

$(this)変数の jQuery オブジェクトを保存しています$height

それを作る:var $height = $(this).height();そして、あなたはすべての準備が整います.

于 2013-03-04T19:05:03.843 に答える
1

問題はイベント ハンドラーにあります。

        function() {
            var $height = $(this);
            console.log( $height.height() );

            $('#slideshow').css({'height': $height + 'px;'});
        }

(文字列)$heightと連結された (jQuery オブジェクト)を実行しようとしています。'px;'これは string で終わりますが'[object Object]px;'、これは明らかにあなたが望むものではありません。代わりに高さの値を使用する必要があります。これはあなたが望むものだと思います:

        function() {
            var height = $(this).height();
            console.log( height );

            $('#slideshow').css({'height': height + 'px'});
        }
于 2013-03-04T19:06:12.643 に答える