一般国外的网站很注重细节,他们会把菜单或者button做成图片,并且还有hover和selected状态。
如果仅仅是单独的button,可以addClass("xx")或者removeClass("xx"),xx是固定值,
但是对于一组菜单或者button,这个时候需要动态地给每个标签加一个对应状态的class,来控制显示样式。
例如下面这样:
<ul>
<li class="logo1">logo1</li>
<li class="logo2">logo2</li>
<li class="logo3">logo3</li>
</ul>
selected的时候:
<ul>
<li class="logo1 logo1-selected">logo1</li>
<li class="logo2">logo2</li>
<li class="logo3">logo3</li>
</ul>
hover的时候:
<ul>
<li class="logo1 logo1-selected logo1-hover">logo1</li>
<li class="logo2">logo2</li>
<li class="logo3">logo3</li>
</ul>
<script type="text/javascript">
$(function(){
$("ul li").each(function(){
var currentClass = $(this).attr("class");
$(this).hover(
function(){
removeHover();
$(this).addClass(currentClass+"-hover");
},
function(){
removeHover();
}
)
$(this).click(function(){
removeHoverSelected()
$(this).addClass(currentClass+"-selected");
})
})
})
function removeHover(){
$("ul li").each(function(){
var classNames = $(this).attr("class").split(" ");
for(var i = 0;i<classNames.length;i++){
if(classNames[i].indexOf("hover") > -1){
$("ul li").removeClass(classNames[i]);
}
}
})
}
function removeHoverSelected(){
$("ul li").each(function(){
var classNames = $(this).attr("class").split(" ");
for(var i = 0;i<classNames.length;i++){
if(classNames[i].indexOf("selected") > -1 || classNames[i].indexOf("hover") > -1){
$("ul li").removeClass(classNames[i]);
}
}
})
}
</script>
这种方法对N个元素的菜单组或者button组都适用。
分享到:
相关推荐
数据结构图的遍历class LinkedDigraph; class LinkedGraph; template <class T> class LinkedWDigraph; template <class T> class LinkedWGraph; template<class T> class LinkedBase: virtual public Network { ...
class Node: def __init__(self, value, left=None, right=None): self.value = value self.left = left self.right = right def preorder_traversal(node): if node is not None: print(node.value) # 访问...
从网上查到的方法是 用get_object_vars 把类类型转换成数组 然后在用 foreach 遍历即可
在Java编程中,有三种主要的遍历方法:前序遍历、中序遍历和后序遍历。 1. **前序遍历**(根-左-右): - 首先访问根节点。 - 然后递归地遍历左子树。 - 最后递归地遍历右子树。 2. **中序遍历**(左-根-右):...
class MyNodeVisitor : public osg::NodeVisitor { public: MyNodeVisitor() : osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) {} virtual void apply(osg::Node& node) { // 处理当前节点 process...
在Windows编程中,尤其是在使用Microsoft Foundation Class (MFC) 库时,遍历技术尤为重要。MFC是Microsoft为C++开发的一个类库,它封装了许多Windows API,使开发者能够更容易地构建Windows应用程序。以下是对标题...
public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { val = x; } } public void preorderTraversal(TreeNode root) { if (root != null) { System.out.println(root.val); ...
在VB.NET编程环境中,遍历全盘文件是一项常见的任务,特别是在进行文件管理和系统维护时。本文将详细讲解如何实现这个功能,以及如何结合递归、计时和全局变量来优化程序控制。 首先,我们要理解“遍历全盘文件”的...
本资源提供对于ViewGroup下所以子view的遍历,以及调用Views都过tag或者Widget的类查找返回一个List 使用方法可见示例: 子View遍历 ...List<ImageView> imageViews = Views.find(root, ImageView.class)
中序遍历是二叉树遍历的一种方法,它按照“左-根-右”的顺序访问树中的所有节点,对于理解树的性质和执行某些操作非常有用。本课程设计将详细介绍如何使用Java编程语言实现二叉树的中序遍历。 首先,我们先构建...
这时,“遍历页面控件换CSS”就成为了一个必要的技术实践。以下将详细介绍这一过程。 首先,我们需要理解遍历页面控件的概念。在HTML文档中,页面控件可以是按钮、输入框、文本、图片等各种元素。遍历这些控件意味...
class TreeNode: def __init__(self, value): self.value = value self.left = None self.right = None ``` 然后通过递归或迭代方式实现遍历算法。在Python中,可以使用递归函数来实现这些遍历方法: ```...
public class DirectoryTraversal { public static void traverse(File startPath) { if (startPath.isDirectory()) { String[] children = startPath.list(); if (children != null) { for (String child : ...
vue中循环遍历使用的指令是v-for 1.v-for遍历数组 (1)value in arr 遍历数组中的元素 ... <div class=box> <li v-for=value>{{value}}</li><br> (value,index)>{{value}}--{{index}} [removed]</s
在计算机科学中,二叉树遍历是访问二叉树所有节点的一种方法,常用于搜索、排序和数据组织等任务。本主题主要探讨的是在MFC(Microsoft Foundation Classes)环境中如何实现二叉树的前序、中序和后序遍历。 首先,...
### 二叉树的非递归遍历方法(C++实现) #### 1. 引言 二叉树是计算机科学中的一个重要数据结构,广泛应用于算法设计与分析中。二叉树的遍历方法通常包括前序遍历、中序遍历和后序遍历。在实际应用中,除了递归...
例如,查找昵称可能需要定位到`<span>`、`<div>`或`<p>`标签,它们可能包含class或id属性来标识特定的用户信息。 接下来,我们将讨论如何填写表单。表单填写涉及到模拟用户交互,通常包括设置表单字段的值并提交。...
Creo 二次开发中的遍历封装 在 Creo 二次开发中,遍历封装是非常重要的一部分。特别是在 ProSolid 中,我们经常需要遍历面、点、轴等几何元素。ProToolkit 下的遍历函数虽然有点麻烦,但是我们可以封装类似的代码来...
public class Node { int data; Node next; public Node(int data) { this.data = data; this.next = null; } } ``` 链表的核心操作之一就是遍历,即按照顺序访问链表中的每一个节点。有几种常见的遍历方式...