jQuery事件操作

news/2024/7/11 1:41:27 标签: jquery, css

1. 事件绑定

<!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.0">
    <title>Document</title>
    <script src="../jQuery.min.js"></script>
    <style>css">
        div {
            width: 200px;
            height: 200px;
        }

        .div1 {
            background-color: red;
            margin-bottom: 20px;
        }
        .div2 {
            background-color: green;
        }
    </style>
</head>

<body>
    <div class="div1">1</div>
    <div class="div2">2</div>
    <ul>
        <li>1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
    </ul>
    <ol></ol>
    
    <script>
        $(function () {
            //1. 单个事件注册
            $(".div1").click(function () {
                $(this).css('background', 'green');
            });


            //2. 在一个元素上绑定一个或多个事件处理函数: on( { ... } )
            $(".div2").on({
                click: function() {
                    $(this).css('background', 'green');
                },
                mouseover: function() {
                    $(this).css('background', 'yellow');
                },
                mouseleave: function() {
                    $(this).css('background', 'purple');
                }
            }); 
                //事件处理程序一样
            // $("div").on("mouseover mouseleave", function () {
            //     $(this).css('background', 'green');
            // })


            //3. on实现事件委派
            // 把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素 ; 
            // click是绑定在ul上的,但是触发的是ul上的小li ; 
            // 在此之前有bind(), live(), delegate()等方法来处理事件绑定或者是事件委派, 新版本提倡用on()进行替代; 
            // $("ul li").click();          //原来
            $("ul").on("click", "li", function () {
                console.log(666);
            }); 


            //4. on可以给动态创建的元素绑定事件
            /*
                $("ol li").click(function() {
                    console.log(222);   
                })   //此种方法不行(因为此时还没有小li), 也即是click不能给动态创建的小li绑定事件
            */

            $("ol").on("click", "li", function () {
                console.log(222);
            })      //用on(),可行
            var li = $("<li>后来创建的小li</li>");
            $("ol").append(li);
        }); 
    </script>
</body>

</html>

请添加图片描述

2. 事件解绑

<!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.0">
    <title>Document</title>
    <script src="../jQuery.min.js"></script>
    <style>css">
        div {
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div></div>
    <ol>
        <li>fs</li>
        <li>sfs</li>
        <li>ksdf </li>
    </ol>
    <p>HelloWorld</p>
    <!-- 
        off() -> 方法可以移除通过on()方法添加的事件处理程序; 
        one() -> 有的事件只想触发一次, 可以使用one()来绑定事件; 
     -->
    <script>
        $(function(){
            $("div").on({
                click: function() {
                    console.log('点击');
                },
                mouseover: function() {
                    console.log('经过');
                }
            });

            $("ol").on("click","li",function() {
                console.log(111);
            })


            //1.解绑
            // $("div").off();          // 解除绑定到div上的所有事件处理
            $("div").off("click");      // 解除绑定到div上的click事件
            $("ol").off("click","li");  // 解除绑定到小li上的click事件

            
            //2. one() 
            $("p").one("click", function () { 
                console.log('只触发一次!');
             }); 
        });
    </script>
</body>
</html>

请添加图片描述

3. 自动触发事件

<!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.0">
    <title>Document</title>
    <script src="../jQuery.min.js"></script>
    <style>css">
        div {
            width: 200px;
            height: 200px;
            background-color: blue;
            margin-bottom: 20px;
        }
    </style>
</head>

<body>
    <div id="div0"></div>
    <div id="div1"></div>
    <div id="div2"></div>
    <input type="text" name="" id="">
    <!-- 
        1. elem.click(); 
        2. elem.trigger("click"); 
        3. elem.triggerHandler("click"); 
     -->
    <script>
        $(function () {
            $("#div0").on("click", function () {
                console.log('div0');
            });
            $("#div1").on("click", function () {
                console.log('div1');
            });
            $("#div2").on("click", function () {
                console.log('div2');
            });
            $("input").on("focus", function () {
                console.log('自动触发了');
                $(this).val('你好吗');
            });

            //自动触发
            //1.元素.click()
            $("#div0").click();

            //2.元素.trigger("type")
            $("#div1").trigger("click");

            //3.元素.triggerHandler("type"): 不会触发元素的默认行为(比如:input中输入框的默认光标闪烁)
            $("#div2").triggerHandler("click");
            $("input").triggerHandler('focus'); //光标不闪了

        })
    </script>
</body>

</html>

请添加图片描述

4. 事件对象

<!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.0">
    <title>Document</title>
    <script src="../jQuery.min.js"></script>
    <style>css">
        div {
            width: 200px;
            height: 200px;
            background-color: red;
        }
    </style>
</head>
<body>
    <div></div>
    <!-- 
        事件被触发,就会有事件对象的产生!
     -->
    <script>
        $(function() {
            $(document).on("click", function() {
                console.log('点击了document');
            }); 

            $("div").on("click", function(event) {
                console.log(event);         // 事件对象
                console.log('点击了div');
                event.stopPropagation();    
                    //阻止冒泡前:> 点击了div -> 点击了document
                    //阻止冒泡后:> 点击了div
            }); 
        }); 
    </script>
</body>
</html>

在这里插入图片描述


http://www.niftyadmin.cn/n/370472.html

相关文章

充分统计量和因子分解定理

充分统计量 定义&#xff1a; 设样本 X X X的服从分布 f ( X ∣ θ ) f(X|\theta) f(X∣θ)&#xff0c; θ ∈ Θ \theta\in\Theta θ∈Θ&#xff0c;设 T T ( X ) TT(X) TT(X)为一统计量&#xff0c;若在已知 T T T的条件下&#xff0c;样本 X X X的条件分布与参数 θ \the…

剑指 Offer 39. 组合总和解题思路

文章目录 题目解题思路 题目 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返回。你可以按 任意顺序 返回这些组合。 candidates 中的 同一个 数…

C++11 addressof()函数(模板函数)(在对象重载了取地址运算符时,获取对象真实地址)

文章目录 addressof模板函数在对象重载了取地址运算符&#xff0c;addressof函数模板就能发挥作用 addressof模板函数 C中的addressof函数是一个模板函数&#xff0c;定义在头文件<memory>中。它的作用是获取一个对象的地址&#xff0c;与C中的取地址符&类似&#x…

威胁情报如何改进 DDoS 保护

分布式拒绝服务 (DDoS) 攻击已成为各种企业的主要威胁&#xff0c;从最小的跨国公司到最大的跨国公司。 根据 2022年全球威胁分析报告&#xff0c;恶意DDoS攻击较2021年增长了150%。此外&#xff0c;DDoS攻击的频率也出现显着上升&#xff0c;令人担忧。 在全球范围内&#x…

1.3. 数据类型与变量

数据类型 在Java中&#xff0c;数据类型决定着一个数据的取值范围和操作。Java中的数据类型主要分为两类&#xff1a;基本数据类型和引用数据类型。 基本数据类型 Java中的基本数据类型包括整型、浮点型、字符型和布尔型。 整型&#xff1a;byte、short、int、long。对应的…

很多互联网企业依然被局限于以规模化为主导的发展机制之下

在这样一个系统里&#xff0c;美团欲要实现新的发展&#xff0c;欲要实现新的增长&#xff0c;必然是需要通过开辟新的市场&#xff0c;必然是需要通过实现新的规模增长来实现的。   这才是我们看到美团之所以会选择出海&#xff0c;并且将出海第一站选择在香港的根本原因。从…

【论文阅读】GNN在推荐系统中的应用

【论文阅读】GNN在推荐系统中的应用 参考Graph Neural Networks for Recommender Systems: Challenges, Methods, and Directions 文章目录 【论文阅读】GNN在推荐系统中的应用1、本文结构2、推荐系统的目的&#xff0c;发展和基于GNN模型的挑战3、推荐系统相应背景&#xff0…

5.29今日黄金最新行情走势分析及多空交易策略

近期有哪些消息面影响黄金走势&#xff1f;今日黄金多空该如何研判&#xff1f; ​黄金消息面解析&#xff1a;上周五(5月26日)美市尾盘&#xff0c;现货黄金收报1946.01美元/盎司&#xff0c;上升4.76美元或0.25%&#xff0c;日内最高触及1957.31美元/盎司&#xff0c;最低触…