Javascript 添加';主动';类设置为与当前单击的菜单链接相同的href

Javascript 添加';主动';类设置为与当前单击的菜单链接相同的href,javascript,jquery,html,twitter-bootstrap,Javascript,Jquery,Html,Twitter Bootstrap,我有这样的菜单结构: <ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> <li><a class="menu-link" href="#day">Day</a></li> <li><a class="menu-link" href="#night">Night</a></li> <li>

我有这样的菜单结构:

<ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
 <li><a class="menu-link" href="#day">Day</a></li>
 <li><a class="menu-link" href="#night">Night</a></li>
 <li><a class="menu-link" href="#drinks">Joogid</a></li>
 <li><a class="menu-link" href="#takeaway">Takeaway</a></li>
</ul>
如何通过单击下拉菜单中的同一href链接将活动类添加到选项卡并从所有其他选项卡中删除它


任何建议

您可以在html中使用“禁用”附件,并单击事件更改附件: (您需要jquery)


$('your eldmdnt name或id或class').attr('disabled','disabeld');
使用禁用的att,不使用激活的当不激活时删除此att当想要不激活时插入此att(代码用于使禁用)

希望它能起作用。让我知道

试试这个,它展示了如何将活动类添加到jQuery UI选项卡

<div id="tabs">
<ul>
    <li><a href="#tabs-1">Tab 1</a>
    </li>
    <li><a href="#tabs-2">Tab 2</a>
    </li>
    <li><a href="#tabs-3">Tab 3</a>
    </li>
</ul>
<div id="tabs-1">
    <p>Content for Tab 1</p>
</div>
<div id="tabs-2">
    <p>Content for Tab 2</p>
</div>
<div id="tabs-3">
    <p>Content for Tab 3</p>
</div>
你的CSS

#tabs {
width: 95%;
margin-left: auto;
margin-right: auto;
margin-top: 10px;}

您可以使用click触发器,它将执行默认行为(更改tab类,并使tab处于活动状态),因此您的代码应该如下所示:

jQuery(function($) {
    var $anchors = $('.menu-link'),
    $items = $('.nav-link');

    $anchors.on('click', function() {
        var selectedIndex = $(this).attr('href');
        $items.eq(selectedIndex).find('a').trigger('click');
    });
});
请参见beleow代码片段:

jQuery(函数($){
变量$anchors=$('.menu-link'),
$items=$('.nav item');
$anchors.on('click',function(){
var selectedIndex=$anchors.index(此);
$items.eq(selectedIndex).find('a').trigger('click');
});
});

下拉示例




表1 一些内容

表2 菜单1中的一些内容

表3 菜单2中的一些内容

表3 菜单2中的一些内容

var$anchors=$('.menu-link'),
$items=$('.nav link');
$anchors.on('click',function(){
var href=$(this.attr(“href”);
$anchors.removeClass('active');
$items.parent().removeClass('active');
$(this.addClass('active');
$('.nav link[href='+href+']')。最近('li')。addClass('active');
});
.active{
颜色:红色
}


我认为这可能会起作用

jQuery(function($) {
    var $anchors = $('.menu-link'),
    $items = $('.nav-link');

    $anchors.on('click', function() {
        var href = $(this).attr('href');

        $('.nav').find('.nav-item').removeClass('active');
        $('.nav').find('.nav-item[href="'+href+'"]').addClass('active');
    });
});

您的代码似乎正常工作,但您有一个类型错误
$('.nav link)
它缺少
'
问题是菜单和选项卡没有包装在同一个div#tabs中。this.parentElement().getAttribute('id');将其用大括号括起来,并在此行下方使用var active=$(“#tabs”).tabs('option','active');我的荣幸:)。嗨,完全忘记了应该有活动类的选项卡面板。您是否有相应修改的建议?html用于制表符:hey@user3615851查看我改进的编辑答案,它还可以帮助您更改制表符触发器:)
$("#tabs").tabs({
activate: function (event, ui) {
    var active = $('#tabs').tabs('option', 'active');
    $("#tabid").html('the tab id is ' + $("#tabs ul>li a").eq(active).attr("href"));

}});
#tabs {
width: 95%;
margin-left: auto;
margin-right: auto;
margin-top: 10px;}
jQuery(function($) {
    var $anchors = $('.menu-link'),
    $items = $('.nav-link');

    $anchors.on('click', function() {
        var selectedIndex = $(this).attr('href');
        $items.eq(selectedIndex).find('a').trigger('click');
    });
});
jQuery(function($) {
    var $anchors = $('.menu-link'),
    $items = $('.nav-link');

    $anchors.on('click', function() {
        var href = $(this).attr('href');

        $('.nav').find('.nav-item').removeClass('active');
        $('.nav').find('.nav-item[href="'+href+'"]').addClass('active');
    });
});