首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当addClass()发生时添加css

当addClass()发生时添加css
EN

Stack Overflow用户
提问于 2017-06-20 16:13:35
回答 1查看 135关注 0票数 0

下面是这个bootstnipp示例旋转木马的“最小”修改版本:

https://bootsnipp.com/snippets/VolV

我添加了sass,以便在“活动”列表项中设置一个彩色边框。当“active”类被更改/添加到新的列表项时,我试图编辑javascript文件以更改边框。首先,我尝试创建一个变量来存储“活动”列表项的边框缺口的currentColor,然后,将父ul的边框颜色更改为与“活动”列表项的边框凹槽颜色相对应。

代码语言:javascript
复制
<div id="myCarousel" class="carousel slide" data-ride="carousel">
    <ul class="nav nav-pills nav-justified carousel-border">
        <li data-target="#myCarousel" data-slide-to="0" class="client-1 active">
            <a href="#">
                <img src="" class="" alt="" title="">
            </a>
        </li>
        <li data-target="#myCarousel" data-slide-to="1" class="client-2">
            <a href="#">
                <img src="" class="" alt="" title="">
            </a>
        </li>
        <li data-target="#myCarousel" data-slide-to="2" class="client-3">
            <a href="#">
                <img src="" class="" alt="" title="">
            </a>
        </li>
        <li data-target="#myCarousel" data-slide-to="3" class="client-4">
            <a href="#">
                <img src="" class="" alt="" title="">
            </a>
        </li>
        <li data-target="#myCarousel" data-slide-to="4" class="client-5">
            <a href="#">
                <img src="" class="" alt="" title="">
            </a>
        </li>
    </ul>
</div>
代码语言:javascript
复制
#myCarousel {
    .nav-pills {
        >li {
            &.client-1 {
                &.active {
                    &:before {
                        border-color: transparent transparent #FACC00 transparent;
                    }
                }
            }
            &.client-2 {
                &.active {
                    &:before {
                        border-color: transparent transparent #685742 transparent;
                    }
                }
            }
            &.client-3 {
                &.active {
                    &:before {
                        border-color: transparent transparent #E2EDC3 transparent;
                    }
                }
            }
            &.client-4 {
                &.active {
                    &:before {
                        border-color: transparent transparent #138B95 transparent;
                    }
                }
            }
            &.client-5 {
                &.active {
                    &:before {
                        border-color: transparent transparent #FAA41A transparent;
                    }
                }
            }
        }
    }
}
代码语言:javascript
复制
$(document).ready(function () {
    $('#myCarousel').carousel({
        interval: 4000
    });

    var clickEvent = false;
    var currentColor = $('#myCarousel .nav li.active:before').css('border-color');
    $('#myCarousel').on('click', '.nav a', function () {
        clickEvent = true;
        $('#myCarousel .nav li').removeClass('active');
        $(this).parent().addClass('active').parent('.nav').css('border-color', currentColor);
    }).on('slid.bs.carousel', function (e) {
        if (!clickEvent) {
            var count = $('#myCarousel .nav').children().length - 1;
            var current = $('#myCarousel .nav li.active');
            current.removeClass('active').next().addClass('active');
            var id = parseInt(current.data('slide-to'));
            if (count == id) {
                $('#myCarousel .nav li').first().addClass('active');
            }
        }
        clickEvent = false;
    });
});
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-06-20 16:40:59

对于this post,您不能访问jQuery中的: are和:after,因为它们不是DOM的一部分。此外,为了使用样式:在:前面和:后,您应该添加内容:‘';到它。否则,样式将不会显示在所有浏览器中。

您可以向元素中添加数据颜色,然后使用此信息。但我认为你不会对此感到高兴,因为你将不再有风格和html的分离。

另一个选项是向指定活动元素的父元素中添加类。例如,addClass('client-1'),然后您可以分配像ul.client-1 {}这样的样式。如果元素被更改,您必须再次删除它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44658153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档