实用简单的jQuery插件教程

推荐专题: jQuery开发手册

创新互联是一家集网站建设,甘井子企业网站建设,甘井子品牌网站建设,网站定制,甘井子网站建设报价,网络营销,网络优化,甘井子网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

1、jQuery插件教程引言

开发jQuery插件是一个高级的话题对于jQuery初学者。这个月,我一直在加强学习jQuery。尽管我学习如何把javascript代码和html文档分开。当我看到我自己的javascipt文件时,我并不满意。它太脏乱,所以我决定更近一步-学习如何开发jQuery插件来整理javascript文件。

这个插件是基于我以前的教程- Navigation List menu + jQuery Animate Effect Tutorial 。上次,我写编写的脚本都把代码放到 document.ready段落中,就像下面的代码。

1$(document).ready(function() {
 2
 3$('ul#menu li:even').addClass('even');
 4 
 5$('ul#menu li a').mouseover(function() {
 6 
 7   $(this).animate( { paddingLeft:"20px" }, { queue:false, duration:500 });
 8 
 9}).mouseout(function() {
10
11   $(this).animate( { paddingLeft:"0" }, { queue:true, duration:500 });
12 
13}).click(function() {
14
15   $(this).animate( { fontSize:"20px" }, { queue:false, duration:500 });
16});
17  
18});

但是现在 我想把代码写成类似如下格式:

1$(document).ready(function() {   

3    $(#menu).animateMenu({  
4   padding:20  
5    })  
6
7});

这样的格式看起来更简练,而且这些脚本可以在另一个工程重用。

2、插件结构

jQuery 官方网站在 Plugins/Authoring页面提供了非常详细的说明。 但是我发现它非常难以理解。

不过没关系,为了使编写插件更容易,使用下面的小段用来开发插件将是一个非常好的结构。

1//为了避免冲突,你需要一个匿名函数来包装你的函数   
 2(function($){  
 3
 4    //给jQuery附加一个新的方法
 5   $.fn.extend({   
 6
 7   //这儿就是你要开发插件的名子
 8   pluginname: function() {  
 9
10 //迭代当前匹配元素集合
11  return this.each(function() {  
12
13 //插入自己的代码 
14
15  });  
16   }  
17    });  
18 
19//传递jQuery参数到函数中,   
20//因此我们能使用任何有效的javascipt变量名来替换“$“符号。但是我们将坚持使用 $ (我喜欢美元符号:)
21

2、带有可选项的插件

如果你看了***步的介绍,"padding"值对于这个插件是用户配置的。他有利于一些设置,所以用户能改变设置根据他们自己的需要。请确定你为每一个变量指定了默认值。现在,如下的代码:

1(function($){   
 2
 3    $.fn.extend({   
 4
 5   //pass the options variable to the function  
 6   pluginname: function(options) {  
 7
 8
 9  //Set the default values, use comma to separate the settings, example:  
10  var defaults = {  
11 padding: 20,  
12 mouseOverColor : '#000000',  
13 mouseOutColor : '#ffffff'  
14  }  
15   
16  var options = $.extend(defaults, options);  
17
18  return this.each(function() {  
19 var o = options;  
20   
21 //code to be inserted here  
22 //you can access the value like this  
23 alert(o.padding);  
24
25  });  
26   }  
27    });  
28 
29})(jQuery); 

3、动态菜单插件

现在你学习了插件的结构。紧接着是我基于以前教程的开发的插件。插件它允许4个配置:

1)、 animatePadding : 给animate 效果设置”padding“值

2)、 defaultPadding :   给padding设置默认的值

3)、evenColor :设置偶数行事件的颜色

4)、oddColor : 设置奇数行事件的颜色

1(function($){   
 2    $.fn.extend({   
 3   //plugin name - animatemenu  
 4   animateMenu: function(options) {  
 5
 6  //Settings list and the default values  
 7  var defaults = {  
 8 animatePadding: 60,  
 9 defaultPadding: 10,  
10 evenColor: '#ccc',  
11 oddColor: '#eee'  
12  };  
13
14  var options = $.extend(defaults, options);  
15
16  return this.each(function() {  
17 var o =options;  
18   
19 //Assign current element to variable, in this case is UL element  
20 var obj = $(this); 
21   
22 //Get all LI in the UL  
23 var items = $("li", obj);  
24
25 //Change the color according to odd and even rows  
26 $("li:even", obj).css('background-color', o.evenColor);
27 $("li:odd", obj).css('background-color', o.oddColor);   
28
29 //Attach mouseover and mouseout event to the LI
30 items.mouseover(function() {  
31$(this).animate({paddingLeft: o.animatePadding}, 300);  
32  
33 }).mouseout(function() {  
34$(this).animate({paddingLeft: o.defaultPadding}, 300);  
35 });  
36   
37  });  
38   }  
39    });  
40})(jQuery);  
41
42

4、完整的源代码

你可以保存这个插件再一个单独的文件。(例如:jquery.animatemenu.js).在这个教程中,我把脚本放到html文档中

1  
2"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
 3< HTML lang=en xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">  
 4 
 5< HEAD>  
 6      
 7    < SCRIPT type=text/javascript src=" http://code.jquery.com/jquery-latest.js">< /SCRIPT>  
 8    < SCRIPT>  
 9
10(function($){  
11    $.fn.extend({   
12   //plugin name - animatemenu  
13   animateMenu: function(options) {  
14
15  var defaults = {  
16 animatePadding: 60,  
17 defaultPadding: 10,  
18 evenColor: '#ccc',  
19 oddColor: '#eee',  
20  };  
21
22  var options = $.extend(defaults, options);  
23
24  return this.each(function() {  
25   var o =options;  
26   var obj = $(this);   
27   var items = $("li", obj);  
28
29   $("li:even", obj).css('background-color', o.evenColor);  
30   $("li:odd", obj).css('background-color', o.oddColor); 
31
32   items.mouseover(function() {  
33  $(this).animate({paddingLeft: o.animatePadding}, 300);  
34  
35   }).mouseout(function() {  
36  $(this).animate({paddingLeft: o.defaultPadding}, 300);  
37  
38   });  
39  });  
40   }  
41    });  
42})(jQuery);  
43 
44    < /SCRIPT>  
45 
46    < SCRIPT type=text/javascript>  
47    $(document).ready(function() {  
48   $('#menu').animateMenu({animatePadding: 30, defaultPadding:10});  
49    });   
50    < /SCRIPT>  
51    < STYLE>  
52 body {}{font-family:arial;font-style:bold}  
53 a {}{color:#666; text-decoration:none}
54   #menu {}{list-style:none;width:160px;padding-left:10px;}  
55   #menu li {}{margin:0;padding:5px;cursor:hand;cursor:pointer}  
56    < /STYLE>  
57
58  
59
60

< UL id=menu>  

61    < LI>Home  

62    < LI>Posts  

63    < LI>About  

64    < LI>Contact  

65< /LI>< /UL>

   
66
67  
68  
 

我希望这个jQuery插件教程能让你更容易的理解jQuery插件

【编辑推荐】

  1. jQuery调用WCF服务传递JSON对象
  2. 学习jQuery必须知道的几种常用方法
  3. 用XML+XSLT+CSS+JQuery组建ASP.NET网站
  4. 使用jQuery和PHP构建一个受Ajax驱动的Web页面
  5. 使用 jQuery 简化 Ajax 开发

网页标题:实用简单的jQuery插件教程
链接地址:http://www.csdahua.cn/qtweb/news11/28861.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网