jQuery笔记1 toggle方法

toggle方法特别实用,很多时候在页面中都会用到,例如:

点击切换位置显示隐藏元素

其实就是无限的来回切换0和1两种状态,使用起来比if好用太多了!

例如:

点击切换标签的背景颜色

    //记得载入jQuery库
    <script src="js/jquery-1.3.1.min.js" type="text/javascript" charset="utf-8"></script>
    
    <p>点我切换</p>
    
    <script type="text/javascript">
        //先用jq给这个p标签设置一个初始的背景颜色和样式
        $("p").css({"background":"yellow","text-align":"center","padding":"10px"});
        
        //创建一个jq变量,存储p标签点击事件
        var $p = $("p").click();
        
        $p.toggle(function(){                   //方法1
            $p.css("background","red");
        },function(){                           //方法2
            $p.css("background","yellow");
        })
    </script>

点击显示隐藏分类目录

先看看效果:



这个功能还是比较实用的,可以用在栏目显示全部和隐藏部分的地方。

    //记得载入jQuery库
    <script src="js/jquery-1.3.1.min.js" type="text/javascript" charset="utf-8"></script>

    //随便写的css,只是为了方便观察
    <style type="text/css">
        li{float: left; margin: 10px;list-style-type: none}
        .clear{clear: both;}
        p{text-align: center;}
    </style>
    
    //分类目录的html代码
    <ul id="brand">
        <li>Samsung</li>
        <li>iPhone</li>
        <li>Sony</li>
        <li>LeTV</li>
        <li>360</li>
        <li>LG</li>
        <li>TCL</li>
        <li>Huawei</li>
        <li>ASUS</li>
        <li>Cube</li>
        <li>Tenda</li>
        <li>samsung</li>
        <li>Lenovo</li>
        <li>OPPO</li>
        <li>Meizu</li>
        <li>Xiaomi</li>
        <li>Other</li>
    </ul>
    <div class="clear"></div>
    <p class="more" href="#">&darr; 显示全部</p>
    
    <script type="text/javascript">
        //选中除了前七个栏目和最后一个栏目外的其余栏目赋值给一个JQ变量(为什么是七个?因为这是数组,数组的起始值是0,所以gt(6)是大于七个以上的)
        var $category =$("#brand li:gt(6):not(:last)");
            //默认先将这些栏目隐藏
            $category.hide();
        //定义一个JQ变量存放控制区域点击事件
        var $more = $(".more").click();
            $more.toggle(function(){
                //隐藏
                $category.hide();
                //修改控制区文本内容
                $more.text("↓ 显示全部");
                //移除高亮的class
                $("ul li").removeClass("high");
            },function(){
                //显示
                $category.show();
                //修改控制区文本内容
                $more.text("↑ 精简显示");
                //为栏目中重要的栏目加上高亮class
                $("ul li").filter(":contains('Samsung'),:contains('Xiaomi'),:contains('LG')").addClass("high");
            })
    </script>

当然,这个地方还可以实用if判断$category这个变量的显示状态来控制,原理都差不多的。

    <script type="text/javascript">
        var $category =$("#brand li:gt(6):not(:last)");
        $category.hide();
        var $more = $(".more");
        $more.click(function(){
            if ($category.is(":visible")) {         
                $category.hide();
                $more.text("↓ 显示全部");
                $("ul li").removeClass("high");
             } else{
                $category.show();
                $more.text("↑ 精简显示");
                $("ul li").filter(":contains('Samsung'),:contains('Xiaomi'),:contains('LG')").addClass("high");
            }
            return false;  
        })
    </script>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,294评论 4 61
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,539评论 25 709
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 6,751评论 0 17
  • 人一生在努力追求什么?似乎是权力、财富、健康这些与人的幸福休戚相关的外在东西。 其实人追求的不应该是权力,有人谋权...
    梦想2050阅读 409评论 1 6
  • 2015年最后看的一部电影其实也就是他了。为自己的改变加油。努力成为下一个自己,不是由别人来定义,而是由自己来定义...
    轩窗记梦阅读 148评论 0 0