封装自己的jQuery插件.

很早就想把自己写过的一些公共的jquery和我们业务结合的方法封装起来,作为内部的jquery的插件来使用,以前也看过jquery插件写法,不过好久没有再去看了,今天又找来温习下,并且写下实用的一个实例。这也是大家平时用得比较多的。不过插件还有别的写法,个人比较喜欢这样来实现。
写法一:

jQuery.extend({
	get_window_sizes: function()
	{
		var iebody = (document.compatMode && document.compatMode != 'BackCompat') ? document.documentElement : document.body;
		return {
			'offset_x'   : iebody.scrollLeft ? iebody.scrollLeft : (self.pageXOffset ? self.pageXOffset : 0),
			'offset_y'   : iebody.scrollTop  ? iebody.scrollTop : (self.pageYOffset ? self.pageYOffset : 0),
			'view_height': self.innerHeight ? self.innerHeight : iebody.clientHeight,
			'view_width' : self.innerWidth ? self.innerWidth : iebody.clientWidth,
			'height'     : iebody.scrollHeight ? iebody.scrollHeight : window.height,
			'width'      : iebody.scrollWidth ? iebody.scrollWidth : window.width
		}
	},
	is: {
		email: function(email)
		{
			return /^([\w-+=_]+(?:\.[\w-+=_]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i.test(email) ? true : false;
		},
 
		blank: function(val)
		{
			if (val == null || val.replace(/[\n\r\t]/gi, '') == '') {
				return true;
			}
 
			return false;
		},
 
		integer: function(val)
		{
			if (val.indexOf('0') == 0) {
				val = val.replace(/^[0]+/, '');
			}
 
			if (jQuery.is.blank(val) || parseInt(val) != val) {
				return false;
			}
 
			return true;
		},
 
		phone: function(val)
		{
			return val.match(/^\(?\d{3}\)?[ ]?[\d-]*$/gi) ? true : false;
		},
 
		zipcode: function(val, country)
		{
			if (zip_validators && zip_validators[country]) {
				return val.match(zip_validators[country]['regex']) ? true : false;
			}
 
			return true;
		}
	},
 
	cookie: {
		get: function(name)
		{
			var arg = name + "=";
			var alen = arg.length;
			var clen = document.cookie.length;
			var i = 0;
			while (i < clen) {
				var j = i + alen;
				if (document.cookie.substring(i, j) == arg) {
					var endstr = document.cookie.indexOf (";", j);
					if (endstr == -1) {
						endstr = document.cookie.length;
					}
 
					return unescape(document.cookie.substring(j, endstr));
				}
 
				i = document.cookie.indexOf(" ", i) + 1;
				if (i == 0) {
					break;
				}
			}
			return null;
		},
 
		set: function(name, value, expires, path, domain, secure)
		{
			document.cookie = name + "=" + escape (value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
		},
 
		remove: function(name, path, domain)
		{
			if (jQuery.cookie.get(name)) {
				document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
			}
		}
	},
	redirect: function(url)
	{
		if ($('base').length && url.indexOf('/') != 0) {
			url = $('base').attr('href') + url;
		}
		window.location.href = url;
	}
});

一个验证的实例,也是自己从别的地方收集的。

封装自己的jQuery插件.》上有3条评论

发表评论

电子邮件地址不会被公开。 必填项已用*标注