jQuery的扩展有两种,全局(和java中类方法,类属性一样),对象。
- 全局函数的表现形式是:$.message()等
- 而对象扩展的形式是:$("#input2").add(1,2)等
首先呢我们建立一个jquery-extend-1.4.2.js的文件,表示将要扩展jquery1.4.2, 然后建立一个网页进行测试,网页中要导入jquery1.4.2和这个将要扩展的文件。
1,刚才说了,jQuery有两种扩展形式,我们先来看第一种:
//one:直接加
jQuery.bar = function(param) {
alert('直接加方法bar,参数是 "' + param + '".');
};
//调用:
$.bar('afei')
//two:使用扩展
jQuery.extend({
foo1:function(){alert("加扩展方法 foo1");},
bar1:function(param){alert("加扩展方法 foo1bar1,参数
是"+param);}
});
//调用
$.bar1("afei-1");
//three,使用命名空间
jQuery.afeiPlugin = {
foo3:function() {
alert('自定应命名空间,加方法foo3');
},
bar3:function(param) {
alert('自定应命名空间,加方法bar3,参数是 "' + param + '".');
}
};
//调用
$.afeiPlugin.bar3("我是阿飞");
//使用命名空间的这个其实蛮常用的,比如我们用的jquery.messager.js这个插件
//的这些方法 比如$.messager.show("我是消息")就是这样的。
2,对象级别的插件开发,代码如下
//形式1
(function($){
$.fn.extend({
test1:function(opt,callback){
alert(opt+" : "+callback);
}
})
})(jQuery);
//形式2
(function($) {
$.fn.test2 = function(opt,callback) {
alert(opt+" : "+callback);
};
})(jQuery);
//调用
$("#input2").test2(3,4);
这个扩展的形参是$,最后在完成的时候传入jQuery对象,那么在插件里面也可以用$来操作query了。
上面两种扩展方式比较简单,可以完成基本的扩展 ,下面给出一个完整的例子。
// 创建一个闭包
(function($) {
// 插件的定义
$.fn.hilight = function(options) {
debug(this);
// build main options before element iteration
var opts = $.extend({}, $.fn.hilight.defaults, options);
// iterate and reformat each matched element
return this.each(function() {
$this = $(this);
// build element specific options
var o = $.meta ? $.extend({}, opts, $this.data()) : opts;
// update element styles
$this.css({
backgroundColor: o.background,
color: o.foreground
});
var markup = $this.html();
// call our format function
markup = $.fn.hilight.format(markup);
$this.html(markup);
});
};
// 私有函数:debugging
function debug($obj) {
if (window.console && window.console.log)
window.console.log('hilight selection count: ' + $obj.size());
};
// 定义暴露format函数
$.fn.hilight.format = function(txt) {
return '<strong>' + txt + '</strong>';
};
// 插件的defaults
$.fn.hilight.defaults = {
foreground: 'red',
background: 'yellow'
};
// 闭包结束
})(jQuery);
总结一下:
1,jQuery为开发插件提拱了两个方法,分别是:
jQuery.fn.extend(object); 给jQuery对象添加方法。
jQuery.extend(object); 为扩展jQuery类本身.为类添加新的方法
2,其中jQuery.fn.extend(object)使我们编写插件功能时常用的。
比如我们要开发一个插件,做一个特殊的编辑框,当它被点击时,便alert 当前编辑框里的内容。可以这么做:
$.fn.extend({
alertValue:function(){
$(this).click(function(){
alert($(this).val());
});
}
});
然后$("test1").alertValue();这样,在点击进入时,可弹出表单元素的值。
下面带附件
分享到:
相关推荐
在ApiCloud中开发H5版2048,首先需要创建一个项目,然后引入必要的前端库,如jQuery或其他轻量级框架,用于处理DOM操作和事件监听。接着,你需要设计一个数据结构来存储棋盘状态,通常是一个二维数组。游戏逻辑通过...
二是网页源代码中的两个Java Script(一种具有函数优先的轻量级,解释型或即时编译型的编程语言)文件:jquery.min.js、dealq8ZH16HCv.min.js(以下分别简称J1、J2文件)。 J1主要是解密、解码等内容,例如J1文件...
15. Apache Click框架初探:Click是一个轻量级的Web开发框架,它的易用性和简洁性使得快速构建应用变得可能。 16. Spring AOP详解:AOP(面向切面编程)是Spring的重要特性,用于实现如日志、权限检查等功能的横切...
- 随着WEBUI框架(如EasyUI、JqueryUI、Ext、DWZ等)的成熟发展,系统界面实现了统一化,这使得代码生成器可以生成具有统一规范的界面。 - 当前的趋势是采用代码生成加上手工MERGE的半智能化开发方式,这种方式...
- **技术背景**:本指南的编写背景是基于当前Web UI框架(如EasyUI、JqueryUI、Ext、DWZ)的成熟度以及它们在统一系统界面方面的应用。随着这些框架的不断发展和完善,代码生成器能够生成更为规范且统一的界面代码,...
《神奇宝贝图鉴项目:JavaScript实现的初探》 神奇宝贝图鉴,即"Pokedex",是《神奇宝贝》系列游戏中一个重要的元素,它记录了各种神奇宝贝的信息,包括属性、技能、进化链等。本项目名为"PokemonPokedex",主要...