动态设置CSS:在attr之前使用javascript [重复]

问题描述 投票:0回答:1

我需要从javascript函数动态更改css类的left属性。

.mega-dropdown-menu:before {
    content: "";
    border-bottom: 15px solid #fff;
    border-right: 17px solid transparent;
    border-left: 17px solid transparent;
    position: absolute;
    top: -15px;
    left: **attr(data-left px)**;
    z-index: 10;
}

function DropDownHover() {
    try {
        $(".dropdown").hover(
            function () {
                $('.dropdown-menu', this).not('.in .dropdown-menu').stop(true, true).slideDown("400");
                $(this).toggleClass('open');
                var objChevron = $(this).find(".fa-chevron-down");
                if (objChevron.length >0) {
                    var offset = $(this).find(".fa-chevron-down").offset();
                    var offsetBefore = offset.left - 273;
                    $('.mega-dropdown-menu').attr('data-left', offsetBefore);
                }
            },
            function () {
                $('.dropdown-menu', this).not('.in .dropdown-menu').stop(true, true).slideUp("400");
                $(this).toggleClass('open');
            }
        );
    } catch (err) { alert(err.message); }
}

在执行期间,我获得像素数,并且数据左边被设置为div但是偏移量没有应用于left属性。

Chrome inspector screenshot

我还尝试了attr(数据左数)和attr(数据左),它们都具有相同的结果。

我错过了什么?

css attr
1个回答
0
投票

Afaik你只能为attr()属性使用content语法。

为什么不去

$('.mega-dropdown-menu').css('left', offsetBefore+'px');

?

© www.soinside.com 2019 - 2024. All rights reserved.