内联样式高度未更新

时间:2019-01-22 05:32:32

标签: javascript jquery html css

真的不确定我在这里缺少什么,但是内联样式的高度不会更新。

代码如下:

var rightSideHeight;
    var optionsHeight;

    $(".quickViewContent .selectboxit-container").live("click", function() {
        rightSideHeight = $(".quickViewPopup .product-details-page .overview").height();
        optionsHeight = $(this).find(".selectboxit-options").height();
        var newHeight = rightSideHeight + optionsHeight;

        $(".quickViewPopup.active .quickViewContent").css("height", newHeight + "px");
    });

    $("#product_childattribute_size_@(Model.Id)").bind({
        "close": function (ev, obj) {
            console.log("rightSideHeight = " + rightSideHeight);
            $(".quickViewContent").css("height", rightSideHeight + "px");
            // Tried
            //$(".quickViewContent").removeAttr("style").css("height", rightSideHeight + "px");
            //Tried
            //$(".quickViewContent").get(0).style.setProperty('height', rightSideHeight + 'px');
        }
    });

因此,当单击按钮时,我会调整弹出式窗口的高度,效果很好<div class="quickViewContent product-details-page" style="height: 653px;">

在绑定处理程序中,我想还​​原样式,因为它记录了原始高度,所以我可以确认绑定有效。但是内联样式不会更新,我觉得这很奇怪,因为它看起来很简单。

控制台输出rightSideHeight = 365,所以我期望<div class="quickViewContent product-details-page" style="height: 365px;">

也没有控制台错误。

为什么不更新? 谢谢

3 个答案:

答案 0 :(得分:0)

您可以用以下代码替换最后一行代码,看看是否可行>

$(“。quickViewContent”)。css(“ height”,rightSideHeight +“ px”);

答案 1 :(得分:0)

噢,我想出来了,基本上是因为我在selectboxit按钮上使用click事件来设置新高度,但是在selectboxit上使用close事件来尝试恢复高度。 但是因为我单击了按钮以关闭下拉菜单,所以它互相抵消了。因此,点击事件是取消绑定事件。

这是我需要做的。

var rightSideHeight;
    var optionsHeight;

    $("#product_childattribute_size_@(Model.Id)").bind({
        "open": function (ev, obj) {
            rightSideHeight = $(".quickViewPopup .product-details-page .overview").height();
            optionsHeight = $(this).next().find(".selectboxit-options").height();
            var newHeight = rightSideHeight + optionsHeight;
            console.log("newHeight = " + newHeight);
            $(".quickViewPopup.active .quickViewContent").css("height", newHeight + "px");
        }
    });

    $("#product_childattribute_size_@(Model.Id)").bind({
        "close": function (ev, obj) {
            console.log("rightSideHeight = " + rightSideHeight);
            $(".quickViewContent").css("height", rightSideHeight + "px");
        }
    });

所以基本上使用打开和关闭绑定事件,并使用它们设置我的身高。有时候,这些东西让我发疯了。

谢谢大家

答案 2 :(得分:0)

像这样使用您的代码,它将起作用

$("#someElement").css({'height': setHeight+"px !important" });