• jQuery的链式编程风格


    首先本人通过一个案例来展示jQuery的链式编程风格。先写一个页面,展示一个列表,代码如下:

    <body>
        <div>
            <ul class="menu">
                <li class="level1">
                    <a href="#">水果</a>
                    <ul class="level2">
                        <li><a href="#">苹果</a></li>
                        <li><a href="#">菠萝</a></li>
                        <li><a href="#">香瓜</a></li>
                    </ul>
                </li>
                <li class="level1">
                    <a href="#">主食</a>
                    <ul class="level2">
                        <li><a href="#">面条</a></li>
                        <li><a href="#">馒头</a></li>
                        <li><a href="#">米饭</a></li>
                    </ul>
                </li>
            </ul>
        </div>
    </body>
    
    <script type="text/JavaScript">
        $(function() {
            $(".level1 > a").click(function() {
                $(this).addClass("current").next().show().parent.siblings().children("a").removeClass("current").next().hide();
                return false;
            });
        });
    </script>
    上述代码的扩展效果就是通过jQuery的链式操作实现的,所有增加current类的操作、查询子元素的方法调用、动画方法的调用等都是对同一个元素进行的,所以在开始获取到一个jQuery对象后,后面的所有方法、属性的调用都通过 “.” 进行连续调用即可,这种模式就是链式操作。

    为了增加代码的可读性和可维护性,我们将上面的链式代码格式的修改如下:

    <script type="text/JavaScript">
        $(function() {
            $(".level1 > a").click(function() {
                // 给当前的元素添加current样式
                $(this).addClass("current")
                    // 下一个元素显示
                    .next().show()
                    // 父元素的同辈元素的子元素a移除current样式
                    .parent.siblings().children("a").removeClass("current")
                    // 他们的下一个元素隐藏
                    .next().hide();
                return false;
            });
        });
    </script>

    经过规范格式的调整后,增加了代码的易读性,更加方便后期的维护。与此同时,我们对于同一个jQuery对象进行链式操作时,主要遵循下面3条格式规范。

    http://www.ssnd.com.cn 化妆品OEM代加工

    (1)对于同一个对象不超过3个操作,可以直接写成一行,代码如下:

    <script type="text/javascript">
        $(function() {
            $("li").show().unbind("click");
        });
    </script>

    (2)对于同一个对象的较多操作,建议每行写一个操作,代码如下:

    <script type="text/javascript">
        $(function() {
            $(this).removeClass("mouseout")
                .addClass("mouseover")
                .stop()
                .fadeTo("fast", 0.5)
                .fadeTo("fast", 1)
                .unbind("click")
                .click(function() {
                    .......
                });
        });
    </script>
     

    (3)对于多个对象的少量操作,可以每个对象写一行,如果涉及子元素,可以考虑适当的缩进。代码如下:

    <script type="text/javascript">
        $(function() {
            $(this).addClass("highLight")
                .children("a").show().end()
                .siblings().removeClass("highLight")
                .children("a").hide();
        });
    </script>

    以上就是有关jQuery的链式编程风格。

  • 相关阅读:
    C#注释含义(XML注释)标签及其含义(二)
    Apache开启伪静态[转]
    C#注释含义(XML注释)标签及其含义(一)
    [转]终结PHP中文乱码的问题
    Symfony框架百科/项目实战/指南/教程
    第一次用Office2007写博客
    prototype.js是什么?
    优秀网站源码 集合
    Pager 精简的分页控件
    Validator.js 很好用的客户端表单验证
  • 原文地址:https://www.cnblogs.com/xiaonian8/p/15012344.html
Copyright © 2020-2023  润新知