jQery的链式操作和商城简易导航栏

今天要记录的是jq的一些简单操作。项目的需求是做一个导航栏,单机不同的商品名称链接,显示相应的内容。用js来写的话相对代码量要多一些,选择jqrey一行则可以搞定,下面呢是我的代码和效果图

这个是初始化点击后

首先是我们的布局部分,这里呢我直接把我的代码写进来,样式可能有点抽象

<style>        .level1{            list-style: none;            line-height: 30px;            width: 100px;            cursor: pointer;            border-top: none;        }

.level2{            list-style: none;            line-height: 20px;            display: none;            width: 100px;        }        .level2 li{            border-bottom: 1px solid black;        }    </style></head><body><div class="box">    <ul class="menu">        <li class="level1">            <a>衬衫</a>            <ul class="level2">                <li><a>短袖衬衫</a></li>                <li><a>长袖衬衫</a></li>                <li><a>无袖T袖</a></li>                <li><a>长袖T袖</a></li>            </ul>        </li>        <li class="level1">            <a>卫衣</a>            <ul class="level2">                <li><a>开襟卫衣</a></li>                <li><a>套头卫衣</a></li>                <li><a>运动卫衣</a></li>                <li><a>童装卫衣</a></li>            </ul>        </li>        <li class="level1">            <a>裤子</a>            <ul class="level2">                <li><a>短裤</a></li>                <li><a>长裤裤</a></li>                <li><a>牛仔裤</a></li>                <li><a>休闲裤</a></li>            </ul>        </li>    </ul>

</div>

接下来进入我们的主体部分了

<script>

// jq的选择器是非常强大,不像js那样的 document.getElementsByClassName去选择我们要操作的元素,而是$(" ")去选择

$(".level1>a").click(function(){

  $(this).addClass("current").next().show().parent().siblings(). children( "a ").removeClass("current").next().hide();

    return flase

})   //这样我们的一个效果就出来了

这段代码的作用是:当我点击a元素的时候(它是level的子元素),给其添加一个class :current,然后紧邻其后的其他元素显示出来,同时将他的父辈元素内部的子元素<a>

都去掉一个名为current 的class,并且将紧邻他们后面的其他元素都隐藏起来   这也就是jq的链式操作  一行代码就能搞定

虽然做到了行为和内容的分离,不过jq也应该保持良好的层次结构和规范性,于是我又将代码改了一下,方便阅读和维护

$(".level1>a").click(function(){

  $(this).addClass("current")

.      next().show().parent()

.siblings(). children( "a ")

.removeClass("current")

.next().hide();

    

return flase

})

</script>

这样我们的一个建议导航菜单就完成了,怎么样   jq很强大吧

时间: 2024-08-29 13:54:24

jQery的链式操作和商城简易导航栏的相关文章

C++中的链式操作

代码编译环境:Windows7 32bits+VS2012. 1.什么是链式操作 链式操作是利用运算符进行的连续运算(操作).它的特点是在一条语句中出现两个或者两个以上相同的操作符,如连续的赋值操作.连续的输入操作.连续的输出操作.连续的相加操作等都是链式操作的样例. 链式操一定涉及到结合律的问题.比如链式操作赋值操作满足右结合律,即a=b=c被解释成a=(b=c).而链式输出操作原则满足左结合律,即cout<<a<<b被解释成(cout<<a)<<b,基本

jQuery对象的链式操作用法分析

可以使用下面的原则判断一个函数返回的时候是jQuery对象,即是否可以用于链式操作. 除了获取某些数据的函数,比如获取属性值"attr(name)",获取集合大小"size()"这些函数明显是返回数据的.除了这些函数之外的jQuery函数都可以用于链式操作,比如设置属性"attr(name.value)". 链式编程.html('val').text('val').css()链式编程,隐式迭代.链式编程注意:$('div').html('设置值'

用php实现一个简单的链式操作

最近在读<php核心技术与最佳实践>这本书,书中第一章提到用__call()方法可以实现一个简单的字符串链式操作,比如,下面这个过滤字符串然后再求长度的操作,一般要这么写: strlen(trim($str)); 那么能否实现下面这种写法呢? $str->trim()->strlen(); 下面就来试下. 链式操作,说白了其实就是链式的调用对象的方法.既然要实现字符串的链式操作,那么就要实现一个字符串类,然后对这个类的对象进行调用操作.我对字符串类的期望如下:(1)当我创建对象时,

jquery设计思想之写法-方法函数化&amp;链式操作

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="

Javascript、C#、php、asp、python 等语言的链式操作的实现

一.什么是链式操作 把需要的下一步操作的对象通过上一步操作返回回来.使完成某些功能具有持续性. 二.链式操作优点 代码更精简优雅.链式操作能大大精简代码量,多项操作一行代码一气呵成,搞定: 链式操作应用场景除了想前端jquery方面的操作dom,后端web框架,在开发orm相关的框架也是常常用到 三.各种语言的链式操作实现 以下根据简单的实现数据库查询的类似实现一些web框架的 orm.查询类的各种DEMO 1.javascript 的链式操作大家最熟悉不过了,jquery 的整个框架就是链式操

PHP 设计模式 笔记与总结(4)PHP 链式操作的实现

PHP 链式操作的实现 $db->where()->limit()->order(); 在 Common 下创建 Database.php. 链式操作最核心的地方在于:在方法的最后 return $this; Database.php: <?php namespace Common; class Database{ function where($where){ return $this; //链式方法最核心的地方在于:在每一个方法之后 return $this } functio

PHP链式操作输出excel(csv)

工作中经常会遇到产品运营让导出一些简单的比较规范的数据,这时候要是有一个简单的方法可以用就简单多了.下面是我的一个输出简单的excel(csv)的方法类,用到了链式操作.说到链式操作,在jquery中可能经常用到,是不是也感觉到链式操作用起来很爽,我们也在这个类中实现下链式操作. 其实链式操作很简单的,就是在前一个类方法最后返回一个该类的对象($this),提供给下一个方法调用. <?php class Array2csv{ /* *@var string $ext 扩展名 */ private

PHP链式操作的实现--即PHP数据操作类。

所谓链式操作最简单的理解就是 操作完毕之后再返回对象$this 想必大家工作中基本都快用烂了得东西. 下面就是一个链式操作MYSQL数据库类. 最常见的链式操作 每一个方法操作之后,返回一个对象,直到最后一个方法才是执行和返回整个链式操作的结果. $model->where()->field()->limit()->select() use PDO; class CyDB extends PDO { private $config = null; public $table; //

jQuery链式操作如何返回上一级DOM

有时候我们在链式操作的时候,选择到了其他的DOM进行操作,如何再返回先前的dom呢,有一下几个方法,end(); addBack(); add(); 使用形式 $("#divFather").show().find("a").addClass("now").end().addClass("highLight") 此段代码表示由ID为divFather往下取得了a标签加上now类之后,再返回到divFather就行添加hight