jquery插件學習相關(1)

jQuery插件機制css

    jQuery提供了兩個用於擴展jQuery功能的方法,即jQuery.fn.extend()和jQuery.extend()方法ide

    jQuery.fn.extend()用於封裝對象方法插件函數

    jQuery.extend()用於封裝全局函數的插件和選擇器插件,同時也可擴展已有的Object對象。this

 

   jQuery.extend()spa

 jQuery.extend(target,obj1...objN)

  經常使用於設置插件方法的一系列默認參數插件

  

 function foo(option){
          option = jQuery.extend({
              name : "bar",
              length : 5
          },option);/*option是傳遞的參數*/

 

插件種類:3d

   1.封裝對象方法插件code

   2.封裝全局函數的插件對象

   3.選擇器插件blog

 

(注:在插件中,this指向的是當前經過選擇器獲取到的jQuery對象,通常的方法那樣,內部的this指向的是DOM元素)

 

例 以表格變化爲例:

 1 <div class="color">
 2         this is a test about font color!
 3     </div>
 4     <table>
 5         <thead>
 6             <tr>
 7                 <td></td>
 8                 <td>姓名</td>
 9                 <td>性別</td>
10                 <td>站駐地</td>
11             </tr>
12         </thead>
13         <tbody>
14             <tr>
15                 <td><input type="checkbox" name="" id="" class="name"></td>
16                 <td>xx1</td>
17                 <td></td>
18                 <td>四川</td>
19             </tr>
20             <tr>
21                 <td><input type="checkbox" name="" id="" class="name"></td>
22                 <td>xx1</td>
23                 <td></td>
24                 <td>四川</td>
25             </tr>
26             <tr>
27                 <td><input type="checkbox" name="" id="" class="name"></td>
28                 <td>xx1</td>
29                 <td></td>
30                 <td>四川</td>
31             </tr>
32             <tr>
33                 <td><input type="checkbox" name="" id="" class="name"></td>
34                 <td>xx1</td>
35                 <td></td>
36                 <td>四川</td>
37             </tr>
38             <tr>
39                 <td><input type="checkbox" name="" id="" class="name"></td>
40                 <td>xx1</td>
41                 <td></td>
42                 <td>四川</td>
43             </tr>
44         </tbody>
45     </table>
46 </body>
View Code

 js:

 1 //表格插件的使用
 2  ;(function($){
 3    $.fn.extend({
 4         "Bctest":function(option){
 5             option = $.extend({
 6                 odd : "odd",
 7             even : "even",
 8             choose : "choose"
 9         },option);
10 
11         $("tbody>tr:odd",this).addClass(option.odd);
12      $("tbody>tr:even",this).addClass(option.even);
13 
14      $("tbody>tr",this).click(function(){
15               //1.實現複選框的選擇
16               var ss = $(this).find("input").attr("checked");
17               if(!ss){
18                 $(this).find("input").attr("checked","checked");
19                 $(this).addClass(option.choose);
20               }else{
21                   $(this).find("input").removeAttr("checked");
22                   $(this).removeClass(option.choose);
23 
24               }
25           });
26      return this;
27 
28         }
29    })
30  })(jQuery);

引用方式:

$(function(){
         $("table").Bctest();
     })

css樣式:

 1  .color{
 2             color:blue;
 3         }
 4         td{
 5             width:50px;
 6             font-size:12px;
 7             text-align:center;
 8         }
 9 
10         .odd{
11             background: #f1f1f1;
12         }
13        .even{
14            background: #5f5f5f;
15        }
16 
17        .choose{ background:#FF6500;color:#fff;}
View Code
相關文章
相關標籤/搜索