/********************************************
* jquery插件扩展方法。
* 使用方法:
* 1)初始化
* $(selector).extendPlugin({
* setting1: 'customized_value'
* })
* 2)调用方法
* $(selector).extendPlugin("
*********************************************/
(function($, undefined) {
//设置默认的配置信息
var def_settings = {
setting1: 'default_value',
setting2: 'default_value'
};
/**
* 定义对外的接口。
*/
var exposeMethods = {
//根据参数初始化插件
init : function(settings) {
var iSettings = $.extend(def_settings, settings);
$(this).each(function() {
var target = $(this);
new ExtendPlugin(iSettings, target);
});
},
/**
* 调用接口进行一些操作
* @return 返回结果集
*/
doOperation : function() {
var extendPlugin = $(this).data("extendPlugin");
if (extendPlugin == null) {
return null;
}
var result = extendPlugin.doOperation();
return result;
}
};
//扩展jquery的实例方法
$.fn.extend({
/**
* 构造插件对象. settings的设置项参见上面的def_settings的属性说明。
*/
extendPlugin : function(method) {
if (exposeMethods[method]) {
return exposeMethods[method].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof method === 'object' || !method) {
exposeMethods.init.apply(this, arguments);
} else {
$.error('The method ' + method + ' does not exist in $.extendPlugin');
}
}
});
/**
* 定义ExtendPlugin对象
* @param target 对象附着的HTML对象的jquery实例
*/
ExtendPlugin = function(settings, target) {
var plugin = this;
//保存配置项
this.settings = settings;
//将对象保存到附着的DOM对象上
this.target = target;
target.data("extendPlugin", this);
//做一些其他的初始化操作
}
/**
* 定义ExtendPlugin的其他实例方法
*/
ExtendPlugin.prototype = {
doOperation: function() {
//do some operation.
},
doOtherOperation: funciton() {
}
};
//定义静态方法
/**
* 判断文字是否为全角字符(中文包括在全角字符中)
* 半角范围:u0000 - u00FF, uFF61 - uFF9F, uFFE8 - uFFEE
* 全角范围:
* 全角数字(0-9) uFF10 - uFF19
* 全角大文字(A-Z): uFF21 - uFF3A
* 全角小文字(a-z): uFF41 - uFF5A
* 全角平仮名:u3040 - u309F
* 全角片仮名:u30A0 - u30FF
* 全角Latin: uFF01 - uFF5E
* 全角Symbol: uFFE0 - uFFE5
* @param character 需判断的字符
* @return true-中文字符;false-非中文字符
*/
ExtendPlugin.isFullWidthCharacter = function(character) {
if (character==null || character=="") {
return false;
}
if (!ExtendPlugin.charRange) {
ExtendPlugin.charRange = {
uFF61: parseInt("FF61", 16),
uFF9F: parseInt("FF9F", 16),
uFFE8: parseInt("FFE8", 16),
uFFEE: parseInt("FFEE", 16)
};
}
var charRange = ExtendPlugin.charRange;
var iCharacter = parseInt(character.charCodeAt(0));
if (iCharacter < 256) {
return false;
} else if (iCharacter>=charRange.uFF61 && iCharacter<=charRange.uFF9F) {
return false;
} else if (iCharacter>=charRange.uFFE8 && iCharacter<=charRange.uFFEE) {
return false;
}
return true;
}
})(jQuery);
编写jquery插件的一种方式
最新推荐文章于 2017-10-16 17:07:40 发布