//第一种是类级别的插件开发:
//1.1添加一个新的全局函数添加一个全局函数,我们只需如下定义:
jQuery. foo = function() {
alert(‘This is a test、 This is only a test. ‘);};
//l. 2增加多个全局函数添加多个全局函数,可采用如下定义:
jQuery. foo = function() {
alert(‘This is a test、 This is only a test.’);};
alert (* This function takes a parameter, which is + param +; 调用时和一个函数
的—样的:jQuery.foo() ; jQuery. bar ();或者. foo() ;. bar (‘bar’);
//l. 3 使用 jQuery. extend (object);
jQuery. extend({
foo: function () {
alert(‘This is a test. This is only a test.’);
},
bar: function(param) {
alert(‘This function takes a parameter, which is "’ + param+’".’
}
});
//l. 4使用命名空间
//虽然在jQuery命名空间中,我们禁止使用了大量的javaScript函数名和变量名。
//但是仍然不可避免某些函数或变量名将于其他jQuery插件冲突,因此我们习惯将一些方法
//封装到另一个自定义的命名空间。
jQuery. myPlugin = {
foo: function() {
alert(‘This is a test、 This is only a test. ‘);
},
bar: funct ion (param) {
alert(‘This function takes a parameter, which is + param +
}
};
//采用命名空间的函数仍然是全局函数,调用时采用的方法:
$. myPlugin. foo ();
$. myPlugin. bar(‘ baz’);
//通过这个技巧(使用独立的插件名),我们可以避免命名空间内函数的冲突。
//第二种是对象级别的插件开发
//形式1:
(function($) {
$. fn. extend({
pluginName : function(opt, callback){
// Our plugin implementation code goes here、
}
})
}) (jQuery);
//形式2:
(function($) {
$. fn. pluginName = function() {
// Our plugin implementation code goes here、
};
}) (jQuery);
//形参是$,函数定义完成之后,把jQuery这个实参传递进去.立即调用执行。
//这样的好处是,我们在写jQuery插件时,也可以使用$这个别名,而不会与prototype引起冲突
Was this helpful?
0 / 0