代码片段学习(一)

本文详细解析了一段实现单页面应用点击事件交互效果的代码,包括代码结构、jQuery使用技巧及模块化编程思想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

描述

这是《单页面应用》一段描写点击事件的代码。今天手敲了一遍,觉得写得自己写的绝对写不成这个样子。所以想的仔细分析一下,学习一下。

代码

var spa = (function( $ ) {
            var 
                configMap = {
                    extended_height : 434,
                    extended_title : "click to retract",
                    retracted_height : 16,
                    retracted_title : 'click to extend',
                    template_html : '<div class="spa-slider"><\/div>'
                },
                $chatSlider,
                toggleSlider,onClickSlider,initModule;

            toggleSlider = function () {
                var slider_height = $chatSlider.height();

                if (slider_height == configMap.retracted_height ) {
                    $chatSlider
                        .animate({height:configMap.extended_height})
                        .attr( 'title' ,configMap.extended_title);
                    return true;
                }
                else if (slider_height == configMap.extended_height) {
                    $chatSlider
                        .animate({height:configMap.retracted_height})
                        .attr( 'title' ,configMap.retracted_height);
                    return true;
                }
                return false;

            };

            onClickSlider = function ( event ) {
                toggleSlider();
                return false;
            };

            initModule = function ( $container ) {
                $container.html( configMap.template_html );

                $chatSlider = $container.find( '.spa-slider' );

                $chatSlider
                    .attr( 'title' , configMap.retracted_title )
                    .click( onClickSlider );

                return true;
            }

            return { initModule : initModule };
    }( jQuery ))

    jQuery(document).ready(
        function () { spa.initModule(jQuery('#spa')); }
    );

分析代码

首先从整洁上来说,function () { } 空格加的特别多,看起来不拥挤

从规范上说:
变量前面定义,定义的方法也很帅气。
采用模块的写法。只返回来一个方法,提供给你调用。
在初始化的方法中进行dom的绑定。
并且每个方法都返回 return 不管是false 和 true 。(如果是我,根本不返回,就算想返回也不知道是返回false 还是 true)。
jQuery的写法也很特别 看起来特别漂亮,而且清楚!
在前面定义变量的好处是 你后面几乎只用提示就行。都不用再去找参数之类的。但是有个问题就是定义那么多名字,起名字就是一个比较头疼的事。作者采用下划线的方式也是我最常用的方式。

对模块 和 闭包的理解 也是这样写的一个必须的条件!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值