zoukankan      html  css  js  c++  java
  • layui.js框架的启发

    最近做前台设计的MM,应用了layui.js框架,是一个可以按模块加载的js框架,可以实现UI上的一些效果,比如"手风琴折叠"面板。我看了下源码,抽出了其框架,应用到公司的项目中,代码示例如下:

      1 /** search.page-v1.0.0  by wbq/*/
      2 !function (w) {
      3     "use strict";
      4     var c = {
      5         showMessageElement: "#tipMessage",
      6         waitElement: "#mainload",
      7     },
      8      o = function () {
      9 
     10          this.v = "1.0.0";
     11          this.PostData = {};
     12          this.KeywordList = [];
     13          this.filterUrl = "";
     14          this.listurl = "";
     15     
     16      };
     17 
     18     o.prototype.buildPostData = function () {
     19         var that = this;
     20         $('[nf-value]').each(function (index, item) {
     21             if (item.type === "checkbox") {
     22                 that.PostData[item.id] = item.checked;
     23             }
     24             else if (item.type === "radio") {
     25                 if (item.checked) {
     26                     that.PostData[item.name] = item.value;
     27                 }
     28             } else {
     29                 if (item.id)
     30                     that.PostData[item.id] = item.value;
     31             }
     32         });
     33         return that.PostData;
     34     },
     35     o.prototype.config = function (e) {
     36         e = e || {};
     37         for (var t in e) c[t] = e[t];
     38         return this;
     39     },
     40     o.prototype.post = function (url, postData, callback) {
     41         if (!postData) {
     42             postData = this.buildPostData();
     43         }
     44         var that = this;
     45         $.ajax({
     46             url: url,
     47             type: "POST",
     48             data: postData,
     49             cache: false,
     50             beforeSend: function (XMLHttpRequest) {
     51                 if (c.waitElement)
     52                     $(c.waitElement).show();
     53             },
     54             success: function (result) {
     55                 if (callback != null && typeof callback == 'function')
     56                     callback(result);
     57             },
     58             complete: function () {
     59                 if (c.waitElement)
     60                     $(c.waitElement).hide();
     61             },
     62             error: function (xhr, status, exp) {
     63 
     64                 that.ShowMessage(exp);
     65             }
     66         });
     67     },
     68     o.prototype.get = function (postData, uri, callback) {
     69         var that = this;
     70         $.ajax({
     71             url: uri,
     72             type: "get",
     73             cache: false,
     74             data: postData,
     75             success: function (result) {
     76                 if (callback != null && typeof callback == 'function')
     77                     callback(result);
     78             },
     79             error: function (xhr, status, exp) {
     80 
     81                 that.ShowMessage(exp);
     82             }
     83         });
     84     },
     85 
     86     o.prototype.CheckAll = function () {
     87         $("input[name='ckImport']").each(function (i) {
     88             if ($(this).prop("checked")) {
     89                 $(this).prop("checked", false);
     90             }
     91             else {
     92                 $(this).prop("checked", true);
     93             }
     94         });
     95     },
     96     o.prototype.Search = function (keyword) {
     97     
     98     };
     99     w.pageRequest = new o;
    100   
    101     w.chooseLetter = function (obj) {
    102     
    103 
    104     };
    105     w.chooseKeyword = function (obj) {
    106    
    107     };
    108   
    109 }(window);

    此js结构比较简单明了,核心原理:通过立即执行函数,为window对象定义了一个属性pageRequest,它指向名为o的function实例,接下来,我们的注意力就集中到了o的上面。var  o=function(){}这是函数表达式的写法。在函数内部,定义了一些属性。然后在o.prototype,即函数的原型上面定义了一组方法,它们在所有的实例上可以共享。我们还可以在window对象上定义其它方法。比如chooseLetter和chooseKeyword。

           

  • 相关阅读:
    (转)一文讲清TCP/IP 协议
    Java框架之Spring Boot和Spring Cloud区别
    php大力力 [006节]初步接触认识phpMyAdmin
    php大力力 [005节] php大力力简单计算器001
    php大力力 [004节]PHP常量MAMP环境下加载网页
    php大力力 [003节]php在百度文库的几个基础教程mac环境下文本编辑工具
    php大力力 [002节]mac php环境安装,mamp安装 ,phpMyAdmin启动
    php大力力 [001节]2015-08-21.php在百度文库的几个基础教程新手上路日记 大力力php 大力同学 2015-08-21 15:28
    C# DataSet与DataTable的区别和用法 ---转载
    【SqlServer】利用sql语句附加,分离数据库-----转载
  • 原文地址:https://www.cnblogs.com/wangqiang3311/p/9077784.html
Copyright © 2011-2022 走看看