zoukankan      html  css  js  c++  java
  • jquery基础之常用事件及jquery扩展

    jquery事件:

      常用事件:

      focus ([[data],fn])                  获取焦点
      blur ([[data],fn])                    失去焦点
      例如:搜索框未获得焦点时里边会有默认值,获取焦点之后默认值清空,移除时再次得到默认值
      change  ([[data],fn])                   当select下拉框中的元素发生改变的时候触发change事件(select例子)
      例如:select响应
      click  ([[data],fn])             点击事件
      dblclick  ([[data],fn])           鼠标双击事件
      scroll([[data],fn])              滚动
      submit([[data],fn])              提交
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Title</title>
        <script src="jquery-3.2.1.min.js"></script>
    </head>
    <body>
    <input type="text" value="一加五手机" ><button>搜索</button>
    <script>
        $("input").focus(function () {
            var data=$("input").val()
            $("input").val("")
            $(this).attr("data-show",data)
        })
        $("input").blur(function () {
            $(this).val($(this).attr("data-show"))
        })
    </script>
    </body>
    </html>
    获取移除焦点代码示例

      不怎么常用:

     error([[data],fn])
      focusin([data],fn)
      focusout([data],fn)
      keydown([[data],fn])         按下
      keypress([[data],fn])         按
      keyup([[data],fn])           键松开
      mousedown([[data],fn])       鼠标按下
      mouseenter([[data],fn])          鼠标移进去
      mouseleave([[data],fn])          鼠标离开:只有鼠标离开被选元素的时候,才会触发mouseleave事件
      mousemove([[data],fn])          鼠标移动
      mouseout([[data],fn])         鼠标离开:无论鼠标离开被选元素还是任何子元素,都会触发mouseout事件
      mouseover([[data],fn]         鼠标悬停
      mouseup([[data],fn])          鼠标弹起
      resize([[data],fn])          元素窗口发生变化
      select([[data],fn])
      unload([[data],fn])
    
      补充:
        文档加载完之后才能绑定事件(大部分情况下)
        简写:
        $(function($){
         //绑定事件
        })

    jquery扩展:(自己写一个类似jquery的js文件):

     //扩展方法1:(给juquery添加扩展):$.xxx()
    
    $.extend({
            "GDP":function () {
                console.log("戴帽子")
            }
        });
    //扩展方法2:(给jquery对象添加扩展方法):$("").xxx()
        
    $.fn.extend({
            "BJG":function(){
                console.log("英语八级就是牛逼")
            }
        });

      这样的话再定义一个func1方法,那在任意方法内都能调用到,可能会产生冲突,为了使func1不公共调用,加上匿名函数,将func1作为私有的方法:
      

    匿名函数:func方法只想自己用,不想让别人调用
    (function () {
        $.extend({
           "GDP":function () {
               func1();
            console.log("戴帽子")
        }
    });
        function func1() { // 函数的内部可以调用,外部就不可以调用了
        console.log("带啥色的帽子呢")
        }
    })();
    
    
    (function () {
        $.fn.extend({
        "BJG":function () {
           fyunc2();
            console.log("英语八级就是牛逼")
        }
    });
        function func2() {
            console.log("厉害了")
        }
    })();

      实践证明:

      如果既不可以让别人在外部随意调用,也可以避免别人修改$怎么办呢?

    // 如果怕$被别人改,那么就传个参数进去
    (function (jq) {
        jq.extend({
           "GDP":function () {
               func1();
              console.log("戴帽子")
           },   //可以扩展多个(加上逗号在写几个)
            "SGS":function () {
              console.log("你蛤蟆")
        }
    });
        function func1() {
        console.log("带啥色的帽子啊")
        }
    })(jQuery);
    
    
    (function (jq) {
        jq.fn.extend({
        "BJG":function () {
            func2();
            console.log("英语八级就是牛逼")
        }
    });
        function func2() {
            console.log("厉害了")
        }
    })(jQuery);
    解决修改$问题

    简单的登录验证:

      需要实现的功能:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <title>Title</title>
        <style>
            .error{
                color:red;
                display: inline-block;
                width: 180px;
            }
        </style>
        <script src="jquery-3.2.1.min.js"></script>
    </head>
    <body>
    <div  style="text-align:center;500px">
        <form action="" style="text-align: right" >
        <p><label for="name">用户名</label>
            <input type="text" id="name" require="true" name="username"><span class="error"></span></p>
        <p><label for="pwd">密码</label>
            <input type="password" id="pwd" require="true" name="password"><span class="error"></span></p>
        <p><label for="phone">手机号</label>
            <input type="text" id="phone" required="true" name="phone"><span class="error"></span></p>
    
    </form><p><button id="submit">提交</button></p>
    </div>
    <script>
        $("#submit").click(function () {
            var eleinputs=$("input")
    
            eleinputs.each(function () {
                var v=$(this).val()
                var drrentE=$(this).attr("name")
                if(v.length==0){
                    $(this).next().text(drrentE+"不能为空")
                    return false
                }
                if($(this).attr("type")==="password"){
                    if(v.length<6){
                        $(this).next().text(drrentE+"不能少于6位")
                        return false
                    }
                }
                if($(this).attr("name")==="phone"){
                    if (!/^1[34578]d{9}$/.test(v)){
                            // 不合法的手机号
                            //  var currentLabel = $(this).prev().text();
                            $(this).next().text(drrentE+ "格式不正确");
                            return false;
                        }
                }
            })
    
    
        })
    
    
    </script>
    
    </body>
    </html>
    最基本的登录验证

    表格的增删改查:

      需要实现的功能:

    持续更新.....

      

  • 相关阅读:
    python之面向对象函数与方法,反射,双下方法
    python之面向对象的成员,方法,属性,异常处理
    python之面向对象性封装,多态,以及鸭子类型
    python之面向对象三大特性: 继承(单继承)
    AMAP-TECH算法大赛开赛!基于车载视频图像的动态路况分析
    深度学习在高德ETA应用的探索与实践
    高德SD地图数据生产自动化技术的路线与实践(道路篇)
    高德前端这五年:动态化技术的研发历程和全面落地实践
    深度学习在高德POI鲜活度提升中的演进
    高德技术评测建设之路
  • 原文地址:https://www.cnblogs.com/kxllong/p/8244834.html
Copyright © 2011-2022 走看看