`
ice-cream
  • 浏览: 329371 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

遍历class

阅读更多

一般国外的网站很注重细节,他们会把菜单或者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 &lt;class T&gt; class LinkedWDigraph; template &lt;class T&gt; class LinkedWGraph; template&lt;class T&gt; 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) # 访问...

    PHP中遍历stdclass object的实现代码

    从网上查到的方法是 用get_object_vars 把类类型转换成数组 然后在用 foreach 遍历即可

    二叉树遍历 单步演示

    在Java编程中,有三种主要的遍历方法:前序遍历、中序遍历和后序遍历。 1. **前序遍历**(根-左-右): - 首先访问根节点。 - 然后递归地遍历左子树。 - 最后递归地遍历右子树。 2. **中序遍历**(左-根-右):...

    OSG中用遍历场景的方法获取节点

    class MyNodeVisitor : public osg::NodeVisitor { public: MyNodeVisitor() : osg::NodeVisitor(osg::NodeVisitor::TRAVERSE_ALL_CHILDREN) {} virtual void apply(osg::Node& node) { // 处理当前节点 process...

    MFC各种遍历

    在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遍历全盘文件

    在VB.NET编程环境中,遍历全盘文件是一项常见的任务,特别是在进行文件管理和系统维护时。本文将详细讲解如何实现这个功能,以及如何结合递归、计时和全局变量来优化程序控制。 首先,我们要理解“遍历全盘文件”的...

    android的view遍历以及多重查找

    本资源提供对于ViewGroup下所以子view的遍历,以及调用Views都过tag或者Widget的类查找返回一个List 使用方法可见示例: 子View遍历 ...List&lt;ImageView&gt; imageViews = Views.find(root, ImageView.class)

    Java二叉树中序遍历

    中序遍历是二叉树遍历的一种方法,它按照“左-根-右”的顺序访问树中的所有节点,对于理解树的性质和执行某些操作非常有用。本课程设计将详细介绍如何使用Java编程语言实现二叉树的中序遍历。 首先,我们先构建...

    遍历页面控件换CSS

    这时,“遍历页面控件换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

    vue中循环遍历使用的指令是v-for 1.v-for遍历数组 (1)value in arr 遍历数组中的元素 ... &lt;div class=box&gt; &lt;li v-for=value&gt;{{value}}&lt;/li&gt;&lt;br&gt;  (value,index)&gt;{{value}}--{{index}} [removed]&lt;/s

    二叉树的前序中序后序遍历MFC

    在计算机科学中,二叉树遍历是访问二叉树所有节点的一种方法,常用于搜索、排序和数据组织等任务。本主题主要探讨的是在MFC(Microsoft Foundation Classes)环境中如何实现二叉树的前序、中序和后序遍历。 首先,...

    二叉树的遍历C++实现

    ### 二叉树的非递归遍历方法(C++实现) #### 1. 引言 二叉树是计算机科学中的一个重要数据结构,广泛应用于算法设计与分析中。二叉树的遍历方法通常包括前序遍历、中序遍历和后序遍历。在实际应用中,除了递归...

    遍历网页获取元素

    例如,查找昵称可能需要定位到`&lt;span&gt;`、`&lt;div&gt;`或`&lt;p&gt;`标签,它们可能包含class或id属性来标识特定的用户信息。 接下来,我们将讨论如何填写表单。表单填写涉及到模拟用户交互,通常包括设置表单字段的值并提交。...

    creo二次开发中各种遍历封装

    Creo 二次开发中的遍历封装 在 Creo 二次开发中,遍历封装是非常重要的一部分。特别是在 ProSolid 中,我们经常需要遍历面、点、轴等几何元素。ProToolkit 下的遍历函数虽然有点麻烦,但是我们可以封装类似的代码来...

    java 数据结构 遍历链表程序

    public class Node { int data; Node next; public Node(int data) { this.data = data; this.next = null; } } ``` 链表的核心操作之一就是遍历,即按照顺序访问链表中的每一个节点。有几种常见的遍历方式...

Global site tag (gtag.js) - Google Analytics