TOP

[js高手之路]jquery插件开发实战-选项卡详解(一)
2017-10-10 15:16:18 】 浏览:10028
Tags:高手 jquery 插件 开发 实战 选项 详解

在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元素,绑定事件之后,就可以调用这个方法,显示按钮的值 "点我",在实际插件开发中,常用的就是这种.接下来,我们就用这种扩展机制开发一个简单的选项卡插件:

页面布局与样式:

 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.ev  
		
[js高手之路]jquery插件开发实战-选项卡详解(一) https://www.cppentry.com/bencandy.php?fid=107&id=133659

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇对象和变量的区别 下一篇javascript中如何实现继承