现在的位置: 首页 > 综合 > 正文

jQuery扩展插件和拓展函数的写法(匿名函数使用的典型例子)

2011年07月02日 ⁄ 综合 ⁄ 共 4324字 ⁄ 字号 评论关闭

      这些年,javascript火起来了,主要归功于AJAX的推广应用,Web2.0的发展。。。于是,出现了很多的javascript框架。我选择了jQuery,最主要是它的思想“write less,do more",因为我是一个挑剔的人,以前写过的代码,会时不时翻出来,看看有没有可以精简,优化的地方。一来是对不断学习的推动,二来可以将新的思想,技术应用到里面去。 

      对于jQuery插件的写法,以前就有介绍过,网上也有很多例子。 这里简要地进行些写法,主要是简写的说明,见下列代码:

 

 <script type="text/javascript" src="jquery-1.4.2.js"></script>

    <script type="text/javascript">
    
        
//jQuery插件的写法(需要传入操作对象)
        ;(function($)
        {
            
//PI_TestPlugIn为插件名称,也是插件的操作对象
            //为了不会与其它插件名重复,这里我使用PlugIn的缩写PI_来定义插件对象前缀
            $.fn.PI_TestPlugIn=   
            {
                
//该插件的基本信息
                Info:{
                    Name: 
"TestPlugIn",
                    Ver: 
"1.0.0.0",
                    Corp: 
"Lzhdim",
                    Author: 
"lzhdim",
                    Date: 
"2010-01-01 08:00:00",
                    Copyright: 
"Copyright @ 2000-2010 Lzhdim Technology Software All Rights Reserved",
                    License: 
"GPL"
                },
                
//具有参数的函数对象,这里参数是一个对象,具有属性
                FunctionWithParams:function(paramObj)
                {
                    
//使用参数,是否使用默认值
                    var params = paramObj ? paramObj : new function(){
                                                           param1
= "1";
                                                           param2
= "2";
                                                       };
                    
                                                   
                    
return this.Info.Name + ".FunctionWithParamObject";
                },
                
//具有参数的函数对象,这里参数是一个变量
                FunctionWithParam:function(varparam)
                {
                    
//使用参数,是否使用默认值
                    var param = varparam ? varparam : null;
                                                   
                                                   
                    
return this.Info.Name + ".FunctionWithParam";
                },
                
//不具有参数的函数对象
                FunctionWithOutParam:function()
                {
                    
return  this.Info.Name + ".FunctionWithOutParam";
                }
            };
        })(jQuery);
        
        
        
//jQuery拓展函数的写法(不需要传入操作对象),即API函数
        ;(function($)
        {
            $.extend({
                
//PIF_TestExtendFunction为拓展函数的操作对象
                //为了不会与其它插件名重复,这里我使用PlugIn的缩写PI_来定义插件对象前缀
                PIF_TestExtendFunction:
                {
                    
//该拓展函数的基本信息
                    Info:{
                        Name: 
"TestExtendFunction",
                        Ver: 
"1.0.0.0",
                        Corp: 
"Lzhdim",
                        Author: 
"lzhdim",
                        Date: 
"2010-01-01 08:00:00",
                        Copyright: 
"Copyright @ 2000-2010 Lzhdim Technology Software All Rights Reserved",
                        License: 
"GPL"
                    },
                    
//具有参数的函数对象
                    FunctionWithParams:function(paramObj)
                    {
                        
//使用参数,是否使用默认值
                        var params = paramObj ? paramObj : {
                                                           param1: 
"1",
                                                           param2: 
"2"
                                                       };
                                                   
                                                   
                        
return this.Info.Name + ".FunctionWithParamObect";
                    },
                    
//具有参数的函数对象,这里参数是一个变量
                    FunctionWithParam: function (varparam) {
                        
//使用参数,是否使用默认值
                        var param = varparam ? varparam : null;

                        return this.Info.Name + ".FunctionWithParam";
                    },
                    
//不具有参数的函数对象
                    FunctionWithOutParam:function()
                    {
                        
return this.Info.Name + ".FunctionWithOutParam";
                    }
                }
            });
        })(jQuery);

        $(function () 
        {
            
//测试插件
            var params = 
            {
                param1: 
"3",
                param2: 
"4"
            };
            
            alert($(
this).PI_TestPlugIn.FunctionWithParams(params));

            alert($.PIF_TestExtendFunction.FunctionWithOutParam());
        });
        
        
    </script>

 

抱歉!评论已关闭.