在jquery中,插件开发常见的有:

一种是为$函数自身扩大贰个方法,这种是静态增加(也叫类伸张),那种插件一般是工具方法,

再有一种是伸张在原型对象$.fn上边的,开发出来的插件是用在dom成分下边的

一 、类级其余扩张

1         $.showMsg = function(){
2             alert('hello,welcome to study jquery plugin dev');
3         }
4         // $.showMsg();

注意要提早引入jquery库,
上例在$函数上边添加了贰个主意showMsg,那么就足以用$.showMsg()调用了

1          $.showName = function(){
2             console.log( 'ghostwu' );
3         }
4         $.showName();

那种插件比较少见,一般都以用来开发工具方法,如jquery中的$.trim,
$.isArray()等等

二 、把效果增添在$.fn上,

这种插件就是用在要素上,比如,小编扩张三个功力,点击按钮,展现当前按钮的值

$.fn.showValue = function(){
      return $(this).val();
}

        $(function(){
            $("input").click(function(){
                // alert($(this).showMsg());
                alert($(this).showMsg());
            });
        });

<input type="button" value="点我">

在$.fn上添加二个showValue方法, 重回当前因素的value值.
在收获到页面input成分,绑定事件过后,就可以调用这些方法,突显按钮的值
“点小编”,在实际上插件开发中,常用的就是那种.接下来,大家就用那种扩展仲景制开发壹个容易的选项卡插件:

jQuery 1

页面布局与体制:

 1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
 6     <meta http-equiv="X-UA-Compatible" content="ie=edge">
 7     <title>Document</title>
 8     <script src="https://cdn.bootcss.com/jquery/1.12.0/jquery.js"></script>
 9     <style>
10         #tab {
11             width:400px;
12             height:30px;
13         }
14         #tab li, #tab ul {
15             list-style-type:none;
16         }
17         #tab ul {
18             width:400px;
19             height: 30px;
20             border-bottom:1px solid #ccc;
21             line-height: 30px;
22         }
23         #tab ul li {
24             float:left;
25             margin-left: 20px;
26             padding:0px 10px;
27         }
28         #tab ul li.active {
29             background: yellow;
30         }
31         #tab ul li a {
32             text-decoration: none;
33             color:#666;
34         }
35         #tab div {
36             width:400px;
37             height:350px;
38             background-color:#ccc;
39         }
40         .clearfix:after{
41             content: '';
42             display: block;
43             clear: both;
44             height: 0;
45             visibility: hidden;
46         }
47     </style>
48     <script src="tab2.js"></script>
49     <script>
50         $(function(){
51             $("#tab").tabs( { evType : 'mouseover' } );
52         });
53     </script>
54 </head>
55 <body>
56     <div id="tab">
57         <ul class="clearfix">
58             <li><a href="#tab1">选项1</a></li>
59             <li><a href="#tab2">选项2</a></li>
60             <li><a href="#tab3">选项3</a></li>
61         </ul>
62         <div id="tab1">作者:ghostwu(1)
63             <div>博客: http://www.cnblogs.com/ghostwu/</div>
64         </div>
65         <div id="tab2">作者:ghostwu(2)
66             <div>博客: http://www.cnblogs.com/ghostwu/</div>
67         </div>
68         <div id="tab3">作者:ghostwu(3)
69             <div>博客: http://www.cnblogs.com/ghostwu/</div>
70         </div>
71     </div>
72 </body>
73 </html>

tab2.js文件

 1 ;(function ($) {
 2     $.fn.tabs = function (opt) {
 3         var def = { evType: "click" }; //定义了一个默认配置
 4         var opts = $.extend({}, def, opt);
 5         var obj = $(this);
 6 
 7         $("ul li:first", obj).addClass("active");
 8         obj.children("div").hide();
 9         obj.children("div").eq(0).show();
10 
11         $("ul li", obj).bind(opts.evType, function () {
12             $(this).attr("class", "active").siblings("li").attr("class","");
13             var id = $(this).find("a").attr("href").substring(1);
14             obj.children("div").hide();
15             $("#" + id, obj).show();
16         });
17     };
18 })(jQuery);

jQuery, 

1,一个自实施函数,把插件封装成模块,把jQuery对象传给形参$

2,第壹行,定义1个私行认同配置,选项卡的触发类型,私行认同为点击事件

3,第6行,假诺opt传参,就用opt的配置,否者就用第贰行的暗许配置,那行的功效就是为着在不更改插件源码的情事下,可以配备插件的表现格局

4,第⑦-9行,让选项卡第3个div突显,其余的都躲藏,让第二个tab加上class=’active’
冰雪蓝高亮当选

5,第贰1-16行,点击相应的选项卡,让对应的div呈现与隐藏

 

相关文章

网站地图xml地图