zoukankan      html  css  js  c++  java
  • JQuery OOP 及 OOP思想的简易理解

    在项目维护的时候,看到通篇的function实际上是非常费(痛)(苦),个人对于前端也不是特别熟悉,就想着JQuery能否也建立OOP的写法?

    目的便于日后代码维护管理,就算不为了自己,日后交接后也能让另一个攻城狮,一目了然的定位错误。

    一、oop.html

     1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     2 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     3 <html dir="ltr" xml:lang="zh-CN" xmlns="http://www.w3.org/1999/xhtml" lang="utf-8"><head>
     4  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
     5  <title>ooptest</title>
     6  <script type="text/javascript" src="jquery.min.js"></script>
     7  <script type="text/javascript" src="oop.js"></script>
     8  </head>
     9  <body>
    10  <br><br>
    11  <center>
    12  访问<a href="http://www.jb51.net">脚本之家</a>
    13  </center>
    14  <br><br>
    15  <div>
    16  名字: <input name="Name" id="Name" type="text" value="请输入中文名字" notice="请输入中文名字" >
    17  </div>
    18  <div></div>
    19  区域选择: <select name="RegionId" id="RegionId" >
    20  <option value="0" selected="selected">行政区选择</option>
    21  <option value="12">浦东新区</option>
    22  <option value="42">松江区</option>
    23  <option value="41">金山区</option>
    24  <option value="40">崇明区</option>
    25  <option value="39">青浦区</option>
    26  <option value="37">静安区</option>
    27  <option value="36">徐汇区</option>
    28  <option value="35">长宁区</option>
    29  <option value="34">虹口区</option>
    30  <option value="33">闸北区</option>
    31  <option value="32">宝山区</option>
    32  <option value="31">嘉定区</option>
    33  <option value="30">闵行区</option>
    34  <option value="29">普陀区</option>
    35  <option value="28">卢湾区</option>
    36  <option value="27">黄浦区</option>
    37  <option value="26">杨浦区</option>
    38  <option value="43">奉贤区</option>
    39  </select>
    40  </body>
    41  <html>
    42  <script type="text/javascript">
    43  $(document).ready(function(){
    44  //实例化一个jquery的CLASS
    45  new oop().init();
    46  });
    47  </script>

    二、建一个oop.js

     1 function oop(){
     2   //定义变量
     3   var aaa = this;
     4   //初始化
     5   this.init = function(){
     6     aaa.addnotice();
     7     aaa.unchange();
     8     return aaa;
     9   }
    10   //添加function
    11   this.addnotice = function(){
    12     $("input[type='text']").each(function(){
    13       $(this)
    14       .focus(function(){
    15         if($(this).val() == $(this).attr('notice')){
    16           $(this).val("");
    17         }
    18       })
    19       .blur(function(){
    20         if($(this).val() == $(this).attr('notice') || $.trim($(this).val()) == ""){
    21           $(this).val($(this).attr('notice'));
    22         }
    23       });
    24     });
    25   }
    26   //添加function
    27   this.cleannotice = function(){
    28     $("input[type='text']").each(function(){
    29       if($(this).val() == $(this).attr('notice')){
    30         $(this).val("");
    31       }
    32     });
    33   }
    34   //添加function
    35   this.unchange = function(){
    36     $(".select").bind('change',function(){
    37       if($(this).val() == '0'){
    38         alert('noselect');
    39       }else{
    40         alert($(this).val());
    41       }
    42     });
    43   }
    44 }

    以上代码内容转自 http://www.jb51.net/article/78487.htm


    补充内容,以下属于个人经验理解,针对尚不熟悉OOP思想的同学食用

     1 <?php
     2 /**
     3  * 歌手类 
     4  */
     5 Class singer(){
     6    //唱歌
     7    function sing(){
     8         echo "唱歌";
     9     }
    10     //跳舞
    11     function dance(){
    12         echo "跳舞";
    13     }    
    14 }

    Class是类,他是一个抽象概念,(记住一句俗语:物以'类'聚)

    换成我们的话意思是:蓝图、原则、原型;

    举例:

      歌手,他是一个类;

      世界上有无数无数的歌手,但是各有不同;(不同的歌手,各自的属性数值不一,所以造就出不一样的歌手)

      但他们都有共同的职能(这就是function),例如:唱歌、跳舞等...

     假设,需要造一名歌手 你要完成他就要实例化,new singer(),这个叫实例化,一名歌手就出来了

     往里面赋值实现方法等等等的操作步骤之后,就使得这名歌手成为了真正的有名有姓能唱擅舞的歌手。

     当然,因为这个类叫歌手,那我需要实例化一个汽车呢?这样就完全分离了

       页面里面就不用实例化歌手类,而是实例化汽车类,new car().name('BMW');也就是这样了。

     以上是最最简单的理解。

    转载请注明
    作者:xxxholicl

  • 相关阅读:
    HBase HTablePool
    Hadoop MapReduce InputFormat/OutputFormat
    MapReduce执行过程源码分析(一)——Job任务的提交
    HBase MultiVersionConsistencyControl
    HBase Split
    HBase HFile
    Do not to test a private method.
    HTML5使用ApplicationCache
    Swift使用FMDB操作SQLite
    使用Swift操作NSDate类型基础
  • 原文地址:https://www.cnblogs.com/xxxholicl/p/6516036.html
Copyright © 2011-2022 走看看