[color=darkred][size=large]JQuery 插件开发:
[b] [list]
[*]类级别开发,开发新的全局函数
[*] 对象级别开发,给Jquery对象开发新方法
[/list][/b][/size][/color]
[size=large][b]一、类级别开发[/b][/size]
定义全局方法
采用命名空间,可以避免命名空间内函数的冲突。
[b][size=large]二、对象级别开发[/size][/b]
定义插件
接受options参数以控制插件的行为
保持私有函数的私有性
[b] [list]
[*]类级别开发,开发新的全局函数
[*] 对象级别开发,给Jquery对象开发新方法
[/list][/b][/size][/color]
[size=large][b]一、类级别开发[/b][/size]
定义全局方法
jQuery.foo = function() {
alert('This is a test.');
};
采用命名空间,可以避免命名空间内函数的冲突。
jQuery.apollo={
fun1:function(){
console.log('fun1');
},
fun2:function(){
console.log('fun2');
}
}
[b][size=large]二、对象级别开发[/size][/b]
定义插件
(function($) {
$.fn.pluginName = function() {
};
})(jQuery);
//插件通过这样被调用:
$('#myDiv').pluginName();
接受options参数以控制插件的行为
(function($){
$.fn.fun2=function(option){
var defaultOption={
param1:'param1',
param2:'param2'
}
$.extend(defaultOption,option);
console.log(defaultOption);
}
})(jQuery);
$(function(){
//通过这样调用
$("body").fun2({
param1:'new Param1'
});
});
保持私有函数的私有性
(function($) {
// plugin definition
$.fn.hilight = function(options) {
debug(this);
// ...
};
// private function for debugging
//“debug”方法不能从外部闭包进入,因此对于我们的实现是私有的。
function debug($obj) {
if (window.console && window.console.log)
window.console.log('hilight selection count: ' + $obj.size());
};
// ...
})(jQuery);