使用jQuery来做前端实有一段时间了,确实也感觉到jQuery的强大和书写相对简单了,不过一直也没去研究过相关的源码,以后有机会还是值得去看看jQuery方面源吗,这段时间对js接触的较多,使用了各种jQuery相关的插件,比如jquery.ui.datepicker.js,flexigrid.js等,确实给开发工作带来了较大的方便,今天自己也依葫芦画瓢,理解了一下jQuery对于插件方面的知识。
1、jQuery插件编写准备
要使用jQuery进行自定义插件的编写,首先应该的是了解jQuery的插件机制或者说是通过jQuery库本身提供的哪些函数进行插件的编写,主要涉及的两个函数是:jQuery.extend(object)和jQuery.fn.extend(object),其具体作用可以通过查找jQuery的API文档
得到,这里也把API简单转过来:
A、
jQuery.extend(object)
扩展jQuery对象本身,用来在jQuery命名空间上增加新函数。
例如:
jQuery.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
});
使用方法:
jQuery.min(2,3); //=> 2
$.max(4,5); //=>5
B、jQuery.fn.extend(object)
扩展 jQuery 元素集来提供新的方法(通常用来制作插件)。具体实例将在下面进行一个简单的示例来进行了解。
2、简单的jQuery插件的编写
A、jQuery插件的基本格式
/*
* digitClocker
* @author: zhoucl
* @date : 08/11/2011
*/
(function($, undefined){
...
//code here
...
})(jQuery);
B、将原来直接javascript编写的一个电子时钟改写为jQuery插件使用,代码如下:
/*
* digitClocker
* @author: zhoucl
* @date : 03/11/2011
*/
(function($, undefined){
$.extend($.fn, {
digitclocker: function(settings){
var params = $.extend({
baseURL: '../js/jquery/custom_plugins/',
imgPath: 'digits/'
}, settings);
for(var i = 1; i < 9; i++) {
if(i % 3 == 0) $(this).append("<img alt='0' src='" + params.baseURL + params.imgPath + "colon.gif'>");
else $(this).append("<img class='clockImage' alt='0' src='" + params.baseURL + params.imgPath + "0.gif'>");
}
new DigitClock(params, $(this));
}
});
setInterval(function(){
DigitClock.reDraw();
}, 1000);
DigitClock = function(params, container) {
this.params = params;
this.container = container;
DigitClock.clocks.push(this);
DigitClock.reDraw();
}
DigitClock.clocks=[];
DigitClock.reDraw = function() {
var d=new Date();
for (var i = 0; i < this.clocks.length; i++) {
this.clocks[i].setTime(d.getHours(),d.getMinutes(),d.getSeconds());
}
}
DigitClock.preZero = function(n, pos) {
return ("0"._digitClockRepeat(pos-1)+n).slice(-pos);
}
DigitClock.prototype = {
setTime : function(h, i ,s) {
this.setImage(
DigitClock.preZero(h,2) + DigitClock.preZero(i,2) + DigitClock.preZero(s,2)
)
},
setImage: function(s) {
s = s.split("");
var baseURL = this.params.baseURL;
var imgPath = this.params.imgPath;
var i = 0;
$(".clockImage", this.container).each(function(){
$(this).attr("src", baseURL + imgPath + s[i++] +".gif");
});
}
}
String.prototype._digitClockRepeat = function(n) {
return new Array(n+1).join(this);
}
})(jQuery);
引用上述js文件,在页面中得调用代码如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>simple_test.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<!--调用jQuery的库:jquery-1.5.2.js-->
<script src="../js/jquery/jquery-1.5.2.js" type="text/javascript"></script>
<script src="../js/jquery/custom_plugins/jquery.clzps.digitclock.js" type="text/javascript"></script>
<script>
$(function(){
$('#digitClock').digitclocker({
baseURL: '../js/jquery/custom_plugins/',
imgPath: 'digits/'
});
});
</script>
</head>
<body>
<div id="digitClock"></div>
</body>
</html>
效果图如下:
至此,一个简单的jQuery插件编写完成!~~本节源码也可访问放在google开源
链接
- 大小: 4.9 KB
分享到:
相关推荐
通过学习以上两种类型的jQuery插件开发,开发者不仅能够更好地理解和利用jQuery的强大功能,还能提高自身的编程技巧和封装能力。无论是对于个人技能的提升还是项目的实际应用,都有着重要的意义。在实践中不断尝试和...
**jQuery插件开发** 在Web开发领域,jQuery是一款广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果和Ajax交互。jQuery插件是扩展jQuery功能的一种方式,允许开发者根据需求定制各种功能,如表单验证、...
jQuery插件开发是一项能够极大提升前端开发效率和代码可复用性的技术。在学习开发jQuery插件之前,需要先了解一些基础概念和最佳实践,以及避免在开发过程中的一些常见陷阱。 首先,我们需要掌握什么是jQuery插件。...
首先,要学习jQuery插件开发,我们先要理解插件的概念。jQuery插件本质上是通过某种机制对jQuery核心模块进行扩展的方法或额外功能。在编写属于自己的插件时,我们不仅可以提高开发效率,还可以在不同的项目中重复...
在学习jQuery插件开发时,查看和分析现有的开源插件源码是很好的学习途径。标签中提到的"源码"意味着我们可以从已有的插件中获取灵感和技巧。此外,利用开发工具如Chrome DevTools可以帮助我们调试和理解插件的运行...
在学习jQuery插件开发之前,需要了解jQuery库本身的功能和组成。jQuery是一个快速、小巧且功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互等操作。在进行jQuery插件开发时,尤其需要关注...
你可以通过查看源代码来学习其工作原理,这对于初学者或者希望深入了解jQuery插件开发的人来说是一个很好的学习机会。 标签“清除html格式”是这个插件的核心特性,它可能包括移除HTML标签、属性、样式以及其他非...
#### 八、插件开发技巧:闭包 - **目的**:保护内部状态不被外部访问,同时提供必要的接口。 - **实现**:在函数中定义另一个函数,并将必要的变量和函数封闭在这个内部函数的作用域内。 - **示例**: ```...
总的来说,jQuery插件是JavaScript和Web开发中的一大利器,它们提高了开发效率,降低了学习成本,并且使得网站和应用程序具有更丰富的用户体验。jQuery社区提供了无数高质量的插件,涵盖各种功能,为开发者带来了极...
总的来说,"dreamweaver8-jQuery插件"是提升Dreamweaver 8用户在jQuery开发中的体验的重要工具。它降低了学习曲线,使得初学者更容易上手,同时也为经验丰富的开发者提供了工作效率的提升。通过整合jQuery的强大功能...
学习jQuery插件开发对于任何希望提升自身前端开发能力的开发者而言,是一项非常重要的技能。 在插件开发中,首先需要了解的是插件开发的基本模式。根据《jQuery高级编程》所述,jQuery插件开发主要有以下几种方式:...
在Sublime Text 2中安装jQuery插件,可以极大地提升前端开发者的工作效率,使得jQuery代码的编写更加得心应手。 jQuery是一种强大的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务,极大地...
总的来说,Dreamweaver结合jQuery插件开发,为Web开发者提供了一个高效、直观的工作环境,使他们能够在熟悉的环境中创建功能丰富的交互式网页。通过不断学习和实践,你将能够充分利用这两个工具,提升自己的Web开发...
在网页开发中,JQuery插件广泛应用于增强用户体验、创建动态效果、简化DOM操作等方面。 这个JQuery插件源码可能包含了一个或多个自定义的JQuery函数,它们被设计用来实现"超眩的页面"和"绝对的动态"效果。这样的...
“jQ学习第二季”可能进一步深入到更复杂的DOM操作和插件使用,例如如何使用jQuery进行AJAX请求,实现异步数据交互,以及如何集成和自定义jQuery插件,提升网站的功能性和用户体验。 “jQ学习第三季”则可能涵盖更...
### 握手jQuery插件开发 开发一个jQuery插件通常涉及以下步骤: 1. **封装函数**:定义一个函数,接受必要的参数,并在函数内部实现功能。 2. **扩展jQuery对象**:通过`$.fn.extend`将函数添加到jQuery原型链,使...