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();这样,在点击进入时,可弹出表单元素的值。
下面带附件
分享到:
相关推荐
jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码jQuery源码...
1. 选择器:jQuery的核心之一是它的CSS选择器,如$("#id")、$(".class")等,这些选择器基于Sizzle引擎实现,能够高效地定位DOM元素。 2. 链式调用:jQuery对象返回的是一个包含多个DOM元素的集合,可以连续调用方法...
《jQuery源码分析》 jQuery,作为一款广泛使用的JavaScript库,极大地简化了DOM操作、事件处理、动画制作以及Ajax交互。深入理解其源码对于...同时,理解源码也能帮助我们更好地利用jQuery,甚至定制自己的工具库。
- **源码结构和核心函数**:详细介绍jQuery对象的创建过程,包括`$`或`jQuery`函数的内部实现,以及如何利用这些核心函数来构建和操作DOM元素。 - **工具函数**:剖析jQuery中用于辅助开发的核心工具函数,如选择器...
通过源码,我们可以学习如何构建自己的jQuery插件,以及如何利用`$.fn.extend()`方法。 在学习《Head First jQuery》的源码时,你可以逐个研究这些关键功能的实现,同时结合书中的解释,深入理解jQuery的工作原理。...
jquery源码,3.7.0版本
《Head First jQuery源码》是一本深入解析jQuery库的书籍,其内容主要涵盖了jQuery的核心功能、设计理念以及实现机制。jQuery是JavaScript的一个库,它极大地简化了网页中的DOM操作、事件处理、动画效果以及Ajax交互...
在前端开发领域,jQuery是一个不可或缺的库,它极大地简化了JavaScript操作DOM、处理事件、创建动画以及实现Ajax交互。这份资料深入解析了jQuery的源码,旨在帮助开发者理解其内部机制,提升技能水平。 jQuery的...
这部分使用了一个立即执行的匿名函数来包裹整个jQuery源码,这样做的目的是形成一个闭包,保护内部的变量不被外部干扰,同时也避免了命名冲突的问题。 ##### 4. 关键字保护 ```javascript var _jQuery = window....
jquery源码分析,包括入口技术,选择器入口,以及在选择器使用的时候需要注意的优化思路
jQuery 是一款广泛使用的 JavaScript 库,它的出现极大地简化了网页的 DOM 操作、事件处理、动画效果和Ajax交互。标题中提到的"jQuery API"指的是jQuery提供的各种函数和方法,这些API允许开发者高效地操控网页元素...
jQuery源码分析视频教程总计116课,按照jquery每个区段实现的内容,精确地讲解源码中是怎么实现我们开发中用到的jquery得方法的
理解 jQuery 源码有助于我们更好地利用这个库,解决实际问题,甚至定制自己的版本。通过学习源码,你可以了解到如何高效地操作 DOM,如何优雅地处理事件,以及如何编写高性能的 JavaScript 代码。这将极大地提升你的...
《jQuery源码分析详解》 ...通过对源码的阅读和理解,我们可以更好地运用jQuery,甚至可以为自己的项目编写高性能的插件。无论你是前端开发者还是JavaScript爱好者,理解jQuery源码都将对你的技能提升大有裨益。
jquery最新源码jquery最新源码jquery最新源码
总结,jQuery源码的深度探索是一次宝贵的编程之旅,它让我们看到了一个优秀JavaScript库的设计思想和实现技巧。无论你是初学者还是经验丰富的开发者,深入理解jQuery,都将对你的职业生涯产生深远影响。
《锋利的jQuery源码》是一本专注于深入解析jQuery库源码的专业书籍,旨在帮助开发者理解并掌握jQuery的核心原理和实现机制。jQuery是JavaScript库中的一个里程碑,它极大地简化了DOM操作、事件处理、动画效果以及...
《jQuery源码详细分析中文注释》是一份深入解析jQuery库源码的宝贵资源,它为开发者提供了理解这个广泛使用的JavaScript库内部工作机制的机会。jQuery以其简洁的API和强大的功能深受前端开发者的喜爱,但其背后的...