zoukankan      html  css  js  c++  java
  • 基于jQuery的插件开发

    (function($) {
    //1、设置默认信息
    //2、设置空的配置信息
    //3、设置核心执行函数,包括配置信息的继承,元素的创建,功能函数的执行。
    //4、通过扩展对象插件的方法对外提供函数接口
      var defaults = {
        //1、设置默认信息
      };
    
      var settings = {};//2、设置空的配置信息
    
      //3、设置核心执行函数,包括配置信息的继承,元素的创建,功能函数的执行。  
      var This = null;//设置全局的This
      function FnExe(options) {
        This = this;//在目标对象下赋值
        settings = $.extend(settings,defaults,option);//配置信息的继承
        Create();//元素的创建
        Fn();//功能函数
      }
      function Create() {}//创建的时候通过配置参数的数据对创建的元素进行渲染
      function Fn() {}
      $.fn.extend({//通过扩展对象插件的方法对外提供接口函数
        FnExe : FnExe
      });
    }(jQuery);
    
    
    //自己配置函数部分:
    $(function() {
      $("#id").FnExe({
        //自己配置信息。
      });
    });

    ================demo================

      1 <!DOCTYPE html>
      2 <html lang="en">
      3 <head>
      4 <meta charset="UTF-8">
      5 <meta content="width=device-width,initial-scale=1" name="viewport">
      6 <title>Tab_test</title>
      7 <style>
      8 body{padding: 0;margin: 0;}
      9 .btns{
     10 width: 100%;
     11 height: 3rem;
     12 line-height: 3rem;
     13 display: flex;
     14 flex-direction: row;
     15 justify-content: space-around;
     16 }
     17 .btn{
     18 width: 33%;
     19 text-align: center;
     20 }
     21 .active{
     22 background: deepskyblue;
     23 color: white;
     24 }
     25 .conts{
     26 width: 100%;
     27 height: auto;
     28 }
     29 .cont{
     30 height: 40rem;
     31 display: none;
     32 }
     33 </style>
     34 </head>
     35 <body>
     36 <article id="Tab">
     37 <!--<section class="btns">-->
     38 <!--<div class="btn active">按钮1</div>-->
     39 <!--<div class="btn">按钮2</div>-->
     40 <!--<div class="btn">按钮3</div>-->
     41 <!--</section>-->
     42 <!--<aside class="conts">-->
     43 <!--<div class="cont">按钮1的内容</div>-->
     44 <!--<div class="cont">按钮2的内容</div>-->
     45 <!--<div class="cont">按钮3的内容</div>-->
     46 <!--</aside>-->
     47 </article>
     48 <script src="../lib/scripts/jquery-1.12.4.js"></script>
     49 <script>
     50 $(function() {//通过插件提供的接口做自己的配置参数
     51 $('#Tab').FnTabExe({
     52 btn : ['体育','娱乐','新闻','视频','关于我们'],
     53 cont : ['体育11111111','娱乐123123123','新闻fffffff','视频ffffffggggg','关于我们123'],
     54 event : 'mouseover'
     55 });
     56 });
     57 (function($) {
     58 //1、置默认信息
     59 //2、配置信息
     60 //3、核心执行函数,包括创建函数,功能函数等
     61 //4、通过$.fn.extend(),基于对象的扩展,提供对外扩展的函数接口
     62 var defaults = {//1、置默认信息
     63 btn : ["导航一","导航二","导航三"],
     64 cont : ["导航一的内容","导航二的内容","导航三的内容"],
     65 event : "click"
     66 };
     67 var settings = {};//2、配置信息
     68 var $This = null;
     69 function FnTabExe(options) {//3、核心执行函数,包括创建函数,功能函数等
     70 $This = this;
     71 settings = $.extend(settings,defaults,options);
     72 Create();
     73 FnTab();
     74 }
     75 function Create() {
     76 var $section = $("<section>");
     77 $section.addClass("btns");
     78 $This.append($section);
     79 for(var i = 0; i < settings.btn.length;i++) {
     80 var $btn = $("<div>"+settings.btn[i]+"</div>");
     81 $btn.addClass("btn");
     82 if(i==0) {
     83 $btn.addClass("active");
     84 }
     85 $section.append($btn);
     86 }
     87 var $aside = $("<aside>");
     88 $aside.addClass("conts");
     89 $This.append($aside);
     90 for(var i = 0;i < settings.cont.length;i++) {
     91 var $cont = $("<div class='cont'>"+settings.cont[i]+"</div>");
     92 if(i==0) {
     93 $cont.css("display","block");
     94 }
     95 $aside.append($cont);
     96 }
     97 }
     98 function FnTab() {
     99 $This.find(".btn").on(settings.event,function() {
    100 $This.find(".btn").removeClass("active");
    101 $(this).addClass("active");
    102 $This.find(".cont").css("display","none");
    103 $This.find(".cont").eq( $(this).index() ).css("display","block");
    104 });
    105 }
    106 $.fn.extend({//4、通过$.fn.extend(),基于对象的扩展,提供对外扩展的函数接口
    107 FnTabExe : FnTabExe
    108 });
    109 })(jQuery);
    110 </script>
    111 </body>
    112 </html>
  • 相关阅读:
    读书笔记Review: HTTP and HttpServletRequest
    读书笔记JavaScript Patterns_chapter6_Code Reuse Patterns
    读书笔记Review: servlet lifecycle and API
    读书笔记Review: HttpServletResponse
    简单分析Ext.ComponentMgr 函数
    翻译 Extjs in action中的Event flow in the DOM
    struts中的web.xml
    读书笔记_Extjs In Action_The Component Life Cycle
    web service中的事件
    Remoting学习笔记
  • 原文地址:https://www.cnblogs.com/intelwisd/p/7284804.html
Copyright © 2011-2022 走看看