Jquery:选项卡式菜单导航,根据所选菜单激活和停用
Jquery: tabbed menu navigation, activation and deactivation based on the menu selected
我在顶部有四个菜单,例如Home, Projects, About Us and Contact Us
,如果我选择任何一个菜单,那么其余的菜单需要隐藏。对于这种情况,我已经用颜色进行了管理。当菜单激活时,它应该是黑色的,其余的应该是白色的,通过更新CSS。它(下面的代码(工作正常。但是,我想简化此代码,因为我认为该操作似乎有大量代码。如何简化此代码以执行相同的操作?有什么帮助吗?
$("li[name='AboutUs']").click(function(){
$(this).attr("class", "selectedtab");
$("li[name='Contact']").removeAttr( "class", "selectedtab");
$("li[name='Projects']").removeAttr( "class", "selectedtab");
$("li[name='Home']").removeAttr( "class", "selectedtab");
});
$("li[name='Projects']").click(function(){
$(this).attr("class", "selectedtab");
$("li[name='Contact']").removeAttr( "class", "selectedtab");
$("li[name='AboutUs']").removeAttr( "class", "selectedtab");
$("li[name='Home']").removeAttr( "class", "selectedtab");
});
$("li[name='Home']").click(function(){
$(this).attr("class", "selectedtab");
$("li[name='Contact']").removeAttr( "class", "selectedtab");
$("li[name='AboutUs']").removeAttr( "class", "selectedtab");
$("li[name='Projects']").removeAttr( "class", "selectedtab");
});
$("li[name='Contact']").click(function(){
$(this).attr("class", "selectedtab");
$("li[name='Home']").removeAttr( "class", "selectedtab");
$("li[name='AboutUs']").removeAttr( "class", "selectedtab");
$("li[name='Projects']").removeAttr( "class", "selectedtab");
});
通过使用名称属性选择器使结构过于复杂。只需为所有这些创建 Id,然后使用 jQuery siblings(( 方法。
.HTML:
<ul id="menu">
<li>About Us</li>
<li>Contact</li>
<li>Projects</li>
<li>Home</li>
</ul>
JavaScript:
$("#menu li").click(function(){
$(this).removeClass("hide").addClass("selectedtab");
$(this).siblings().removeClass("selectedtab").addClass("hide")
});
小提琴:http://jsfiddle.net/xw1hkLjm/
$("li").find(".selectedtab").removeClass("selectedtab");
$(this).addClass("selectedtab");
试试这个:给你的header
分配一些id
来区分其他ul
,如果它们在页面上的话
$("#header li").click(function(){
$(this).attr("class", "selectedtab");
$("#header li").not(this).removeAttr("class");
});
示例 HTML:
<ul id="header">
<li name="Home">Home</li>
<li name="Contact">Contact</li>
<li name="AboutUs">AboutUs</li>
<li name="Projects">Projects</li>
</ul>
<ul>
<li class="new">hiiiii</li>
</ul>
$('li').click(function() {
$(this).addClass('selectedtab');
$('li').not(this).removeClass('selectedtab');
});
相关文章:
- 如何激活下拉菜单:在一个元素上单击768px宽度下方,在另一个元素上将鼠标悬停在768px上方
- 在GXT中激活上下文菜单时,如何保持选中的文本高亮显示?(EXT GWT 2.x)
- 通过下拉菜单激活Javascript命令
- 使用Selenium WebDriver单击下拉菜单不会激活Javascript来添加或删除页面中的项目
- 如何在刷新后激活菜单选项卡
- 数据切换=“;下拉菜单”;激活路由重定向,而不是yeoman中的下拉菜单
- 使用 Jquery 单击菜单链接时,激活或添加菜单选项卡上的类活动
- 当目标处于顶部滚动状态时,如何从菜单中激活项目
- 激活下拉菜单时动态更改标题的位置
- Jquery:选项卡式菜单导航,根据所选菜单激活和停用
- AngularJS ui-router - 设置菜单激活
- 使用 Greasemonkey 更改变量或激活 JS 链接的<选择>下拉菜单
- 如何通过单击主菜单栏的子菜单来激活/聚焦仪表板UI选项卡
- 离子改变侧面菜单图标悬停和激活
- 激活引导下拉菜单悬停
- 自定义侧边导航菜单在Durandal更改样式时激活
- 鼠标经过时间后激活弹出菜单,然后在鼠标离开时取消激活
- 我想激活选项卡菜单项上的一个按钮单击
- Vue.js使菜单项激活
- 用纯javascript激活下拉菜单