`
zhoucl
  • 浏览: 50183 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jQuery插件开发学习

 
阅读更多

     使用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的强大功能,还能提高自身的编程技巧和封装能力。无论是对于个人技能的提升还是项目的实际应用,都有着重要的意义。在实践中不断尝试和...

    JQuery插件开发

    **jQuery插件开发** 在Web开发领域,jQuery是一款广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果和Ajax交互。jQuery插件是扩展jQuery功能的一种方式,允许开发者根据需求定制各种功能,如表单验证、...

    jQuery插件开发详细教程

    jQuery插件开发是一项能够极大提升前端开发效率和代码可复用性的技术。在学习开发jQuery插件之前,需要先了解一些基础概念和最佳实践,以及避免在开发过程中的一些常见陷阱。 首先,我们需要掌握什么是jQuery插件。...

    跟我一起学JQuery插件开发

    首先,要学习jQuery插件开发,我们先要理解插件的概念。jQuery插件本质上是通过某种机制对jQuery核心模块进行扩展的方法或额外功能。在编写属于自己的插件时,我们不仅可以提高开发效率,还可以在不同的项目中重复...

    JQuery插件开发 + 插件

    在学习jQuery插件开发时,查看和分析现有的开源插件源码是很好的学习途径。标签中提到的"源码"意味着我们可以从已有的插件中获取灵感和技巧。此外,利用开发工具如Chrome DevTools可以帮助我们调试和理解插件的运行...

    老司机带你解读jQuery插件开发流程

    在学习jQuery插件开发之前,需要了解jQuery库本身的功能和组成。jQuery是一个快速、小巧且功能丰富的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互等操作。在进行jQuery插件开发时,尤其需要关注...

    好用清除html的jquery插件

    你可以通过查看源代码来学习其工作原理,这对于初学者或者希望深入了解jQuery插件开发的人来说是一个很好的学习机会。 标签“清除html格式”是这个插件的核心特性,它可能包括移除HTML标签、属性、样式以及其他非...

    jquery插件编写指南

    #### 八、插件开发技巧:闭包 - **目的**:保护内部状态不被外部访问,同时提供必要的接口。 - **实现**:在函数中定义另一个函数,并将必要的变量和函数封闭在这个内部函数的作用域内。 - **示例**: ```...

    jQuery插件,jQuery插件

    总的来说,jQuery插件是JavaScript和Web开发中的一大利器,它们提高了开发效率,降低了学习成本,并且使得网站和应用程序具有更丰富的用户体验。jQuery社区提供了无数高质量的插件,涵盖各种功能,为开发者带来了极...

    dreamweaver8-jQuery插件

    总的来说,"dreamweaver8-jQuery插件"是提升Dreamweaver 8用户在jQuery开发中的体验的重要工具。它降低了学习曲线,使得初学者更容易上手,同时也为经验丰富的开发者提供了工作效率的提升。通过整合jQuery的强大功能...

    jQuery插件开发精品教程(让你的jQuery更上一个台阶)

    学习jQuery插件开发对于任何希望提升自身前端开发能力的开发者而言,是一项非常重要的技能。 在插件开发中,首先需要了解的是插件开发的基本模式。根据《jQuery高级编程》所述,jQuery插件开发主要有以下几种方式:...

    sublime2 jquery插件

    在Sublime Text 2中安装jQuery插件,可以极大地提升前端开发者的工作效率,使得jQuery代码的编写更加得心应手。 jQuery是一种强大的JavaScript库,它简化了HTML文档遍历、事件处理、动画以及Ajax交互等任务,极大地...

    Dreamweaver 开发jQuery插件

    总的来说,Dreamweaver结合jQuery插件开发,为Web开发者提供了一个高效、直观的工作环境,使他们能够在熟悉的环境中创建功能丰富的交互式网页。通过不断学习和实践,你将能够充分利用这两个工具,提升自己的Web开发...

    JQuery插件

    在网页开发中,JQuery插件广泛应用于增强用户体验、创建动态效果、简化DOM操作等方面。 这个JQuery插件源码可能包含了一个或多个自定义的JQuery函数,它们被设计用来实现"超眩的页面"和"绝对的动态"效果。这样的...

    jquery基础学习插件实例大全

    “jQ学习第二季”可能进一步深入到更复杂的DOM操作和插件使用,例如如何使用jQuery进行AJAX请求,实现异步数据交互,以及如何集成和自定义jQuery插件,提升网站的功能性和用户体验。 “jQ学习第三季”则可能涵盖更...

    jquery插件大全(内含Demo)

    ### 握手jQuery插件开发 开发一个jQuery插件通常涉及以下步骤: 1. **封装函数**:定义一个函数,接受必要的参数,并在函数内部实现功能。 2. **扩展jQuery对象**:通过`$.fn.extend`将函数添加到jQuery原型链,使...

Global site tag (gtag.js) - Google Analytics