在导航中删除和添加数据属性

Remove and add data attributes on navigation

我想在我的网站上创建一个带有自定义导航的 Bootstrap 轮播。所以我将指示器更改为三个块,其中包含一些文本和一个按钮。

<div class="container">
<div class="row">
    <ul class="slide-nav">
        <li data-target="#carousel" data-slide-to="0" class="col-sm-4 slide-first">
            <div class="nav-element">
                <i class="fa fa-star symbol-big"></i>
                <h3>Leistungen</h3>
                <a href="#" class="btn btn-primary btn-block">Mehr erfahren</a>
            </div>
        </li>

        <li data-target="#carousel" data-slide-to="1" class="col-sm-4 slide-middle active">
             <div class="nav-element">
                <i class="fa fa-thumbs-up symbol-big"></i>
                <h3>Ihre Vorteile</h3>
                <a href="#" class="btn btn-primary">Mehr erfahren</a>
            </div>
        </li>

        <li data-target="#carousel" data-slide-to="2" class="col-sm-4 slide-last">
             <div class="nav-element">
                <i class="fa fa-users symbol-big"></i>
                <h3>Unser Team</h3>
                <a href="#" class="btn btn-primaryk">Mehr erfahren</a>
            </div>
        </li>
    </ul>
</div>
</div>

导航工作正常,但是当我想单击按钮访问 link 时,由于 "data-target" 而无法工作。如果我删除它,我可以单击 link。

现在我想实现的是,当我单击具有活动 class 的 "li" 元素时,"data-attribute" 将被删除,而当我单击另一个元素时,它将被删除再次添加。

或者有更好的方法吗?

可能重复

你可以阅读并利用这个

Add & remove active class from a navigation link

sample jsfiddleenter code here sample fiddle

我现在解决了。

$('.slide-nav li').click(function () {
    $(this).removeAttr('data-target');
    $(this).attr('data-target', '#carousel');
    $(".active").attr('data-target', '');
});

唯一可能缺少的是,如果我可以单击 link 并直接进入它,那就太好了 - 而不是首先必须单击 li 元素才能访问 link..