首页 > 其他分享 >2023.3.2 jQuery 事件操作

2023.3.2 jQuery 事件操作

时间:2023-04-23 10:22:38浏览次数:38  
标签:jQuery function 绑定 click 2023.3 事件 h5 event

jQuery 事件操作

js中的$( function(){} ); 和原生js中的 window.onload = function(){} 的区别?

他们分别是在什么时候触发?

  • jQuery 的页面加载完成之后是浏览器的内核解析完页面的标签创建好 DOM 对象之后就会马上执行。

  • 原生 js 的页面加载完成之后,除了要等浏览器内核解析完标签创建好 DOM 对象,还要等标签显示时需要的内容加载完成。

他们触发的顺序?

  • jQuery 页面加载完成之后先执行

  • 原生 js 的页面加载完成后执行

他们执行的次数?

  • 原生 js 的页面加载完成之后,只会执行最后一次的赋值函数。

  • jQuery 的页面加载完成之后是全部把注册的 function 函数,依次顺序全部执行。

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5 <title>Insert title here</title>
 6 <script type="text/javascript"></script>
 7 <script type="text/javascript" src="../../script/jquery-1.7.2.js"></script>
 8 <script type="text/javascript">
 9     //相当于赋值操作  所以只执行最后一个
10     window.onload = function(){
11         //会在整个页面加载完毕之后调用
12         alert("原生js加载完成   后执行 ")
13     }
14     $(function(){
15         //会在当前文档加载完毕之后调用
16         alert("JQuery加载完成(简写)   先执行")
17     })
18     // $(document).ready(function (){
19     //  alert("JQuery加载完成(全写)   先执行")
20     // });
21 ​
22 ​
23 </script>
24 </head>
25 <body>
26     <button>我是按钮</button>
27     <!--- 等标签显示时需要的内容加载完成。这个链接需要加载 -->
28     <iframe src="http://www.baidu.com"></iframe>
29     
30 </body>
31 </html>

jQuery 中其他的事件处理方法:

  • click() 它可以绑定单击事件,以及触发单击事件

  • mouseover() 鼠标移入事件

  • mouseout() 鼠标移出事件

  • bind() 可以给元素一次性绑定一个或多个事件。

  • one() 使用上跟 bind 一样。但是 one 方法绑定的事件只会响应一次。

  • unbind() 跟 bind 方法相反的操作,解除事件的绑定

  • live() 也是用来绑定事件。它可以用来绑定选择器匹配的所有元素的事件。哪怕这个元素是后面动态创建出 来的也有效

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 2 <html>
 3     <head>
 4         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5         <title>Untitled Document</title>
 6         <link href="css/style.css" type="text/css" rel="stylesheet" />
 7         <script type="text/javascript" src="../../script/jquery-1.7.2.js"></script>
 8         <script type="text/javascript">
 9         
10             $(function(){
11                 // //click()
12                 // $("h5").click(function () { // 传function是绑定事件
13                 //  alert('h5单击事件 == click方法绑定')
14                 // });
15                 // //点击按钮触发h5标签的单击事件
16                 // $("button").click(function () {
17                 //  $("h5").click(); // 不传function是触发事件(触发    $("h5")的   单击事件)
18                 // });
19                 //
20                 // // 鼠标移入
21                 // $("h5").mouseover(function () {
22                 //  console.log("你进来了")
23                 // });
24                 //
25                 // //鼠标移出
26                 // $("h5").mouseout(function () {
27                 //  console.log("你出去了")
28                 // });
29                 //
30                 // // 使用bind绑定事件(绑定了上面三种类型事件  空格隔开)
31                 // $("h5").bind("click mouseover mouseout",function () {
32                 //  console.log("这是bind绑定的事件");
33                 // });
34                 //
35                 // //one
36                 // $("h5").one("click mouseover mouseout",function () {
37                 //  console.log("这是one绑定的事件");
38                 // });
39                 //
40                 // $("h5").unbind("click");//取消了$("h5")的click事件   如果不写参数相当于全部取消
41 ​
42 ​
43 ​
44                 // 使用live绑定的单击事件  后面就算是新创建的h5标签也会绑定上click事件
45                 //           事件类型 执行的函数
46                 $("h5").live("click",function () {
47                     alert('h5单击事件 == live方法绑定');
48                 });
49 ​
50                 //在#panel中创建一个h5标签   也会绑定上click事件
51                 $('<h5 class="head">什么是jQuery?</h5>').appendTo( $("#panel") );
52 ​
53 ​
54             });
55         
56         </script>
57     </head>
58     <body>
59         <div id="panel">
60             <h5 class="head">什么是jQuery?</h5>
61             <div class="content">
62                 jQuery是继Prototype之后又一个优秀的JavaScript库,它是一个由 John Resig 创建于2006年1月的开源项目。jQuery凭借简洁的语法和跨平台的兼容性,极大地简化了JavaScript开发人员遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax。它独特而又优雅的代码风格改变了JavaScript程序员的设计思路和编写程序的方式。
63             </div>
64             <button>按钮</button>
65         </div>
66     </body>
67 ​
68 </html>

事件的冒泡

什么是事件的冒泡?

  • 事件的冒泡是指,父子元素同时监听同一个事件。当触发子元素的事件的时候,同一个事件也被传递到了父元素的事件里去 响应。

那么如何阻止事件冒泡呢?

  • 在子元素事件函数体内,return false; 可以阻止事件的冒泡传递。

 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 2 <html>
 3     <head>
 4         <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5         <title>Untitled Document</title>
 6         <style type="text/css">
 7             *{
 8                 margin: 0;
 9                 padding: 0;
10             }
11             body{
12                 font-size: 13px;
13                 line-height: 130%;
14                 padding: 60px;
15             }
16             #content{
17                 width: 220px;
18                 border: 1px solid #0050D0;
19                 background: #96E555;
20             }
21             span{
22                 width: 200px;
23                 margin: 10px;
24                 background: #666666;
25                 cursor: pointer;
26                 color: white;
27                 display: block;
28             }
29             p{
30                 width: 200px;
31                 background: #888;
32                 color: white;
33                 height: 16px;
34             }
35         </style>
36         <script type="text/javascript" src="jquery-1.7.2.js"></script>
37         <script type="text/javascript">
38             $(function(){
39                 //父元素#content  与子元素span绑定同一个事件
40                 $("#content").click(function () {
41                     alert('我是div');
42                 });
43 ​
44                 $("span").click(function () {
45                     alert('我是span');
46                     return false;//如果不写   单击子元素会发生单击事件,但是也会触发父元素的单击事件
47                                  //如果写   单击子元素会发生单击事件,不会触发父元素的单击事件
48                 });
49             })
50         </script>
51     </head>
52     <body>
53         <div id="content">
54             外层div元素
55             <span>内层span元素</span>
56             外层div元素
57         </div>
58         
59         <div id="msg"></div>    
60         
61         <br><br>
62         <a href="http://www.hao123.com">WWW.HAO123.COM</a>  
63     </body>
64 </html>

javaScript 事件对象

事件对象,是封装有触发的事件信息的一个 javascript 对象。

我们重点关心的是怎么拿到这个 javascript 的事件对象。以及使用。

如何获取呢 javascript 事件对象呢?

在给元素绑定事件的时候,在事件的 function( event ) 参数列表中添加一个参数,这个参数名,我们习惯取名为 event。 这个 event 就是 javascript 传递参事件处理函数的事件对象。

比如:

//1.原生 javascript 获取 事件对象

//2.jQuery 代码获取 事件对象

//3.使用 bind 同时对多个事件绑定同一个函数。怎么获取当前操作是什么事件。

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5 <title>Insert title here</title>
 6 <style type="text/css">
 7 ​
 8     #areaDiv {
 9         border: 1px solid black;
10         width: 300px;
11         height: 50px;
12         margin-bottom: 10px;
13     }
14     
15     #showMsg {
16         border: 1px solid black;
17         width: 300px;
18         height: 20px;
19     }
20 ​
21 </style>
22 <script type="text/javascript" src="jquery-1.7.2.js"></script>
23 <script type="text/javascript">
24 ​
25     //1.原生javascript获取 事件对象(事件也是一个对象)
26     window.onload = function () {
27         document.getElementById("areaDiv").onclick = function (event) {
28             console.log(event);
29         }
30     }
31     //2.JQuery代码获取 事件对象
32     $(function () {
33         $("#areaDiv").click(function (event) {
34             console.log(event);
35         });
36     });
37 ​
38     //3.使用bind同时对多个事件绑定同一个函数。怎么获取当前操作是什么事件。
39     $(function () {
40         $("#areaDiv").bind("mouseover mouseout",function (event) {
41             if (event.type == "mouseover") {
42                 console.log("鼠标移入");//鼠标移入#areaDiv就会打印鼠标移入
43             } else if (event.type == "mouseout") {
44                 console.log("鼠标移出");//鼠标移出#areaDiv就会打印鼠标移出
45             }
46         });
47     });
48 ​
49 ​
50 </script>
51 </head>
52 <body>
53 ​
54     <div id="areaDiv"></div>
55     <div id="showMsg"></div>
56 ​
57 </body>
58 </html>

 

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5 <title>Insert title here</title>
 6 <style type="text/css">
 7 ​
 8     #areaDiv {
 9         border: 1px solid black;
10         width: 300px;
11         height: 50px;
12         margin-bottom: 10px;
13     }
14     
15     #showMsg {
16         border: 1px solid black;
17         width: 300px;
18         height: 20px;
19     }
20 ​
21 </style>
22 <script type="text/javascript" src="jquery-1.7.2.js"></script>
23 <script type="text/javascript">
24 ​
25     $(function () {
26         $("#areaDiv").bind("mouseover mouseout",function (event) {
27             console.log(event);
28         });
29     });
30 ​
31 </script>
32 </head>
33 <body>
34 ​
35     <div id="areaDiv"></div>
36     <div id="showMsg"></div>
37 ​
38 </body>
39 </html>

练习 图片跟随鼠标

 1 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 2 <html>
 3 <head>
 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 5 <title>Insert title here</title>
 6 <style type="text/css">
 7     body {
 8         text-align: center;
 9     }
10     #small {
11         margin-top: 150px;
12     }
13     #showBig {
14         position: absolute;
15         display: none;
16     }
17 </style>
18 <script type="text/javascript" src="script/jquery-1.7.2.js"></script>
19 <script type="text/javascript">
20     $(function(){
21         $("#small").bind("mouseover mouseout mousemove",function (event) {
22             if (event.type == "mouseover") {//事件是鼠标移出时
23                 $("#showBig").show();
24             } else if (event.type == "mousemove") {//事件是鼠标移动时
25                 $("#showBig").offset({//offset设置获取坐标
26                     //event.pageX 鼠标与屏幕的横向距离
27                     left: event.pageX + 10,//鼠标从小图片向右下角移动时  鼠标会移动到大图片上 导致小图片绑定的事件不起作用  造成图片频闪  所以加了一些距离
28                     top: event.pageY + 10
29                 });
30             } else if (event.type == "mouseout") {
31                 $("#showBig").hide();
32             }
33         });
34     });
35 </script>
36 </head>
37 <body>
38 ​
39     <img id="small" src="img/small.jpg" />
40     
41     <div id="showBig">
42         <img src="img/big.jpg">
43     </div>
44 ​
45 </body>
46 </html>

 

 

标签:jQuery,function,绑定,click,2023.3,事件,h5,event
From: https://www.cnblogs.com/shanzha/p/17345706.html

相关文章

  • 微信小程序-小程序事件冒泡和事件捕获
    !>小程序当中的时间捕获与时间冒泡与原生JS的是一样的这里我就来直接上代码来演示一下在微信小程序当中的时间冒泡与捕获,关于时间的捕获与冒泡可以参考我JS文章里面的介绍即可。事件捕获index.wxml:<viewclass="one"capture-bind:tap="onOneClick"><viewclass="two"captu......
  • 微信小程序-小程序事件绑定
    什么是事件事件是视图层到逻辑层的通讯方式。事件可以将用户的行为反馈到逻辑层进行处理。事件可以绑定在组件上,当达到触发事件,就会执行逻辑层中对应的事件处理函数。事件对象可以携带额外信息,如id,dataset,touches。常见事件tap:手指触摸后马上离开longpress:手指触摸后,超过350ms......
  • 微信小程序-事件传递数据
    事件对象小程序在触发事件监听方法的时候会自动传递一个事件对象给我们,通过这个事件对象我们可以拿到页面传递过来的一些数据。事件对象的作用拿到触发事件的元素:currentTarget拿到触发事件的位置:detail拿到从页面传递过来的数据:dataset/mark页面传递数据的方法datasetmark通......
  • # jquery # form表单上传文件
    form表单上传文件<formaction="/upload/"method="post"enctype="multipart/form-data">头像:<inputtype="file"name="head-pic">用户名:<inputtype="text"name="username">......
  • 表格里,如何实现input失去焦点事件
     一诺佳人创建于 2020-09-0213:33 大佬,请问表格的input框内怎么实现动态失去焦点事件,例如填写数量和单价,金额自动生成, 我在formatter里写了,如下,但是不是自动触发,是点击新增按钮,才会自动计算一次。     参考代码表格字......
  • 2023.3.24 【字符串】AC自动机
    2023.3.24【模板】AC自动机题目描述有这样一个问题:给定\(n\)个模式串\(s_i\)和一个文本串\(t\),求有多少个不同的模式串在文本串里出现过。两个模式串不同当且仅当他们编号不同。题面多简单qwq如果我们简化一下这个问题,模式串和文本串都只有一个,那么我们就可以用一个10......
  • 使用proxy实现一个监听鼠标事件
    由于弹框遮罩层问题,如果绑定鼠标移入移出事件不能顺利,就想着监听鼠标坐标来实现,vue拥有监听器实现简单,就想着用proxy来做一个如下代码<template><divid="x">x:0</div><divid="y">y:0</div><divclass="myDiv"index="1">mydiv1</div&......
  • MYSQL事件
    --创建MYSQL事件DELIMITER$CREATEEVENTIFNOTEXISTSevent_deldataONSCHEDULEEVERY1MINUTESTARTS'2023-04-2100:00:00'ONCOMPLETIONPRESERVECOMMENT'测试'DOBEGIN--Droptabledroptableifexiststmp_czc;--......
  • 前端之jQuery
    目录jQuery简单介绍jquery介绍jQuery的优势jQuery内容jQuery版本jQuery下载引入方式jQuery对象jquery基础语法标签对象和jQuery对象jquery对象转为标签对象标签对象转为jquery对象学习jQuery的步骤查找标签基本选择器组合选择器基本筛选器属性选择器表单筛选器:筛选器方法元素有关......
  • jquery DOM型漏洞
    1、漏洞介绍漏洞编号:CVE-2016-7103、CVE-2015-9251、CVE-2014-6071、CVE-2012-6708、CVE-2011-4969漏洞环境:jquery影响范围:1.x系列版本等于或低于1.12的jQuery2.x系列版本等于或低于2.2的jQuery漏洞原理:$(val)形式的jquery代码,由于某些版本的jquery的解析规则存在漏洞,导......