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

您正在记录$height.height(),但仅$height在 CSS 中使用。

如果你更好地命名你的变量,它会更容易: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

$height是一个 jQuery 变量。您需要通过调用来获取它的高度.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 回答