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');
});
});