成都网站建设设计

将想法与焦点和您一起共享

$.fn.extend简单学习

(function($){
	
	/**
		1.
		$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。
		如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,
		那么后面你的每一个jquery实例都可以引用这个方法了. 
		那么你可以这样子:$("#div").abc(); 


		2.  
		jQuery为开发插件提拱了两个方法,分别是: 
		
		jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法。→ 可以理解为【静态方法 】
		
		jQuery.fn.extend(object);给jQuery对象添加方法
		jQuery.fn.extend(object);对jQuery.prototype进得扩展,
		就是为jQuery类添加“成员函数”。jQuery类的实例可以使用这个“成员函数”。

		//jQuery源码中。。。
		jQuery.fn = jQuery.prototype ={ 
		   init: function( selector, context ){//....  
		   //...... 
		}; 

		
		3.
		$.fn.function用于添加单个方法
		$.fn.extend 用于添加多个方法

		参考:http://www.cnblogs.com/wyjgreat/archive/2011/07/19/2110754.html

	*/

	//1.
	$.fn.abc = function() {
		alert("测试$.fn.,可以参考select下拉框总结那篇文章!");
	}

	//2.为 jQuery 添加一个为add 的 “静态方法”,之后便可以在引入 jQuery 的地方,使用这个方法了,
	$.extend({
		add:function(a,b) {
			return a + b;
		},
		sub:function(a,b) {
			return a - b;
		}
	});

	//2.1
	$.fn.extend({
		getVal:function() {
			return $(this).val();
		}
	});

	//3....
	$.hcCookie = {
		    g: function(name) {
		        var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
		        if (arr != null) return unescape(arr[2]); return null;
		    },

		    d: function(name) {
		        var exp = new Date();
		        exp.setTime(exp.getTime() - 1);
		        var cval = getCookie(name);
		        if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + ";path=/";
		    },

		    s: function(name, value,t) {
		        var days = 30;
		        var exp = new Date();
		        if(t){
		        	exp.setTime(exp.getTime()+t* 60 * 60 * 1000);
		        }else{
		        	exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);
		        }
		        
		        document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/";
		    }
	};


})(jQuery);


/**
	写在(function($){})(jQuery);外面
	【下面的代码可以单独放在一个JS中,base.js】

*/
var kzCookie={
    g: function(name) {
        var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
        if (arr != null) return unescape(arr[2]); return null;
    },

    d: function(name) {
        var exp = new Date();
        exp.setTime(exp.getTime() - 1);
        var cval = this.g(name);
        if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString() + ";path=/";
    },

    s: function(name, value,t) {
        var days = 30;
        var exp = new Date();
        if(t){
            exp.setTime(exp.getTime()+t* 60 * 60 * 1000);
        }else{
            exp.setTime(exp.getTime() + days * 24 * 60 * 60 * 1000);
        }
        
        document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString() + ";path=/";
    }
};

//去右空格 
String.prototype.rTrim=function(str){         
   var   re_r=new RegExp("([.\\w]*)"+(str&&("(\\"+str+")")||"[ ]")+"+$") ;
   return   this.replace(re_r, "$1") ;
};
//去左空格 
String.prototype.lTrim=function(str){         
    var   re_l=new RegExp("^"+(str&&("(\\"+str+")")||"[ ]")+"+(.*)") ;
    return   this.replace(re_l, "$2") ;
};
//去左右空格 
String.prototype.trim=function(str){           
   return   this.lTrim(str).rTrim(str) ;
};

目前成都创新互联已为1000+的企业提供了网站建设、域名、网络空间、网站托管、服务器租用、企业网站设计、龙胜网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

测试代码:




	
	Document


	
test
(function(){ //alert(1); // $("div").abc(); // var result = $.add(3,4); // alert(result); //var result = $.sub(5,4); //alert(result); // var result = $("input").getVal(); // alert(result); /*   kzCookie.s("hanchao","testcookienew",24);     kzCookie.s("hanchao1","testcookienew1",24);           kzCookie.d("hanchao");     //kzCookie.d("hanchao1");           var cookieValue = kzCookie.g("hanchao");     var cookieValue1 = kzCookie.g("hanchao1");     alert(cookieValue);     alert(cookieValue1);*/     $.hcCookie.s("hanchao","testcookienew",24);     var cookieValue = kzCookie.g("hanchao");     alert(cookieValue); })();

本文名称:$.fn.extend简单学习
URL地址:http://chengdu.cdxwcx.cn/article/poipoo.html