• jQuery事件


    一,常用事件:

      点击事件:语法:click (function(){})

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <!--引入cdn-->
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    </head>
    <body>
    <form action="">
        <p><label for="i1">username:
            <input type="text" id="i1" name="username">
            <span class="errors"></span>
        </label></p>
        <p><label for="i2">password:
            <input type="password" id="i2" name="password">
            <span class="errors"></span>
        </label></p>
        <input type="submit" value="注册" id="d1">
    </form>
    <script>
        // 获取按钮标签
        var $b1Ele = $('#d1');
        // 给按钮标签绑定点击事件
        // 原生js  b1ELe.onclick = function(){}
        $b1Ele.click(function () {
            // 获取到用户输入的内容
            var $userName = $('#i1');
            var $passWord = $('#i2');
            // 判断上面标签的value是否为空
            if ($userName.val().length == 0){
                // 找到username对于的span标签添加提示信息
                $('.errors').first().text('用户名不能为空')
            }
            // 判断上面标签的value是否为空
            if ($passWord.val().length == 0){
                // 找到username对于的span标签添加提示信息
                $('.errors').last().text('密码不能为空')
            }
            // 阻止表单的提交
            return false;
        })
    </script>
    </body>
    </html>

      悬浮事件:语法:hover(function(){})

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <p>啊啊啊啊啊啊啊啊</p>
    
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js">
    </script>
    <script>
        $('p').hover(
            // 鼠标移在标签上面时依次触发两个function
            function () {
                alert('come on')
            },
            function () {
                alert('see you')
            }
        )
    </script>
    </body>
    </html>

      input事件:语法: $('').on('事件',function(){})

    <!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>实时监听input输入值变化</title>
    </head>
    <body>
    <input type="text" id="i1">
    
    <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    <script>
      /*
      * oninput是HTML5的标准事件
      * 能够检测textarea,input:text,input:password和input:search这几个元素的内容变化,
      * 在内容修改后立即被触发,不像onchange事件需要失去焦点才触发
      * oninput事件在IE9以下版本不支持,需要使用IE特有的onpropertychange事件替代
      * 使用jQuery库的话直接使用on同时绑定这两个事件即可。
      * */
      $("#i1").on("input propertychange", function () {
          // this指的是原生的JS对象,因此要使用jQuery的方法需要用$转换
        alert($(this).val());
      })
    </script>
    </body>
    </html>

      克隆事件:.clone()

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
        <style>
            button {
                background-color: pink;
            }
        </style>
    </head>
    <body>
    <button>屠龙宝刀,点击就送!</button>
    
    <script>
        // 第一种绑定事件的方式
        // $('button').click(function () {
        //      $(this).clone(true).insertAfter(this);
        // })
        // 第二种绑定事件的方式
        $('button').on('click',function () {
            // this就是:button标签的原生JS对象
            // clone(无参数)表示不克隆事件,clone(true)表示克隆事件
            // insertAfter表示克隆的对象放在原对象之后
            $(this).clone(true).insertAfter(this);
        })
    
    </script>
    </body>
    </html>

      阻止后续事件执行的两种方式:return false 和 e.preventDefault();

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
        <link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
        <script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
    <body>
    
    <form action="">
        <input id="b1" type="submit">
    </form>
    <script>
        // 阻止submit按钮提交操作的两种方式
        $("#b1").click(function (e) {
            alert(123);
            //return false;
            e.preventDefault();
        });
    </script>
    </body>
    </html>

      事件冒泡:

        本质:一个标签的事件被触发之后,系统会触发其父标签的相同事件。

        解决方法:e.stopPropagation()

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
        <link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/css/bootstrap.min.css" rel="stylesheet">
        <script src="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/js/bootstrap.min.js"></script>
    <body>
    <div>
        <p>
            <span>点我</span>
        </p>
    </div>
    <script>
        $("span").click(function (e) {
            alert("span");
            e.stopPropagation();
        });
    
        $("p").click(function () {
            alert("p");
        });
        $("div").click(function () {
            alert("div");
        })
    </script>
    </body>
    </html>

      事件委托:基于事件冒泡的原理,利用父标签去捕获子标签的事件。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
        <script src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
    </head>
    <body>
    <button>welcome!</button>
    
    <script>
        // $('button').click(function () {
        //     alert(123)
        // })
    
        // 事件委托:body将click事件委托给button
        $('body').on('click','button',function () {
            alert(123)
        })
    </script>
    </body>
    </html>

      ps:由于DOM加载需要时间,因此为了让每个标签都获得被绑定的事件,提供三种方式写入js代码:

      第一种:

    $(document).ready(function(){
    // 在这里写你的JS代码...
    })

      第二种:

    $(function(){
    // 你在这里写你的代码
    })

      第三种:在body标签的末尾写入script标签和js代码(主要的使用方式)

  • 相关阅读:
    Unity --- sharedMaterial 、material
    lua --- Module
    lua --- 点号 和 冒号
    lua --- __newindex 的使用规则
    DirectX之顶点法线的计算
    DirectX学习之第一个可运行的工程
    java--select*
    java--Servlet做控制器实现代码和UI分离
    java--JSTL取代%
    java--entity层的引入
  • 原文地址:https://www.cnblogs.com/ay742936292/p/10974923.html
Copyright © 2020-2023  润新知