jQuery扩展插件

jQuery有多好用,大家有目共睹的,但是有时候不是每个功能都是万能的,有时候我们需要实现自己的功能,jQuery提供了很好的拓展功能,我们可以去拓展插件,更好的利用jQuery

查看官网,可知,有两个拓展的方式,

第一:$工具方法

第二:$对象的方法

由于jQuery都是建立在自执行函数的,所以你自己写的插件必须也是自执行函数

好了,我就实现了几个功能,得到最大最小值,全选是否

废话少说辣,直接上来代码:

//自定义的插件
(function(){
    
    //扩展jQuery工具方法
    $.extend({
        min:function(a,b){
            return a < b ? a : b
        },
        max:function(a, b){
            return a > b ? a : b
        },
        leftTrim:function(string){
            return string.replace(/^s+/,'')
        },
        rightTrim:function(string){
            return string.replace(/s+$/,'')
        },
        
        
    })
    
    //$对象方法
    
    $.fn.extend({
        checkAll:function(){
            this.prop("checked",true)
        },
        unCheckAll:function(){
            this.prop("checked",false)
        },
        reverseCheck:function(){
            console.log(this)
            this.each(function(){
                console.log(this)
                this.checked = !this.checked
            })
            
        }
    })
    
    
})()

下面来几个例子来调用看看能不能实现啦,注意了,我们自定义的插件也是要建立在jQuery的插件之上的,所以顺序的事情大家就应该知道辣

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>25_扩展插件</title>
  <style type="text/css">
    * {
      margin: 0px;
    }

    .div1 {
      position: absolute;
       100px;
      height: 100px;
      top: 50px;
      left: 10px;
      background: red;
    }
  </style>
</head>
<body>
<input type="checkbox" name="items" value="足球"/>足球
<input type="checkbox" name="items" value="篮球"/>篮球
<input type="checkbox" name="items" value="羽毛球"/>羽毛球
<input type="checkbox" name="items" value="乒乓球"/>乒乓球
<br/>
<input type="button" id="checkedAllBtn" value="全 选"/>
<input type="button" id="checkedNoBtn" value="全不选"/>
<input type="button" id="reverseCheckedBtn" value="反选"/>

<!--
1. 扩展jQuery的工具方法
  $.extend(object)
2. 扩展jQuery对象的方法
  $.fn.extend(object)
-->
<script src="../../js/jquery-1.10.1.js" type="text/javascript"></script>
<script src="../../js/my_plugin.js" type="text/javascript"></script>
<script type="text/javascript">
  /*
   需求:
   1. 给 $ 添加4个工具方法:
     * min(a, b) : 返回较小的值
     * max(c, d) : 返回较大的值
     * leftTrim() : 去掉字符串左边的空格
     * rightTrim() : 去掉字符串右边的空格
   2. 给jQuery对象 添加3个功能方法:
     * checkAll() : 全选
     * unCheckAll() : 全不选
     * reverseCheck() : 全反选
   */
  var str = 'rainbow cai   '
  
//console.log($.min(3,5))
//console.log($.max(3,5))
//console.log($.leftTrim(str))
//console.log($.rightTrim(str))

var $items = $(":checkbox[name='items']")
$("#checkedAllBtn").on("click",function(){
    $items.checkAll()
})

$("#checkedNoBtn").click(function(){
    $items.unCheckAll()
})

$("#reverseCheckedBtn").click(function(){
    $items.reverseCheck()
})

  
  

</script>
</body>
</html>

好啦好啦,最近太忙,已经很久没有继续更博了,接下来的时间希望可以继续更博,不断的监督自己。

原文地址:https://www.cnblogs.com/caicaihong/p/9516251.html