当前位置: 首页 > news >正文

jQuery学习(三)

事件

on方法可以将一个事件绑定在jQuery对象上,当你的操作触发了这些事件时,便会调用你所绑定的函数。

例如,给某个超链接绑定点击事件。

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 3 <script src="./js/jquery-1.12.0.js"></script>
 4 <script>
 5 $(document).ready(function(){
 6     var a = $('a');
 7     a.on('click', function(){
 8         alert('Hello Word');
 9     });
10 });
11 </script>
12 <title>Event</title>
13 </head>
14 <body>
15 <a href="#0">Click</a>
16 </body>

除了用on()以外,还可以直接用click来绑定点击事件。

<script>
$(document).ready(function(){
    var a = $('a');
    a.click(function(){
        alert('Hello');
    });
});
</script>

鼠标事件

click: 鼠标单击时触发;

dblclick:鼠标双击时触发;

mouseenter:鼠标进入时触发;

mouseleave:鼠标移出时触发;

mousemove:鼠标在DOM内部移动时触发;

hover:鼠标进入和退出时触发两个函数,相当于mouseenter加上mouseleave。

键盘事件

键盘事件仅作用在当前焦点的DOM上,通常是<input><textarea>

keydown:键盘按下时触发; keyup:键盘松开时触发; keypress:按一次键后触发。

其他事件

focus:当DOM获得焦点时触发;

blur:当DOM失去焦点时触发;

change:当<input><select><textarea>的内容改变时触发;

submit:当<form>提交时触发;

ready:当页面被载入并且DOM树完成初始化后触发。

其中,ready仅作用于document对象上,在页面DOM树构建完成后触发。

正如上述代码所示,除了能够用on绑定ready事件外,ready事件也可以像click一样被简写。甚至能被更简单的写为:

1 <script>
2 $(function(){
3     var a = $('a');
4     a.click(function(){
5         alert('Hello');
6     });
7 });
8 </script>

而且这种写法更为常见。

如果想获得事件的其他内容,可以在function传入变量e来获取。

 

取消绑定:

和on()相反的是,off()可以帮我们取消jQuery对象上的事件绑定,

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 3 <script src="./js/jquery-1.12.0.js"></script>
 4 <script>
 5 $(function(){
 6     var a = $('a');
 7     a.click(function(){
 8         alert('Hello');
 9     }); 
10     var bt = $('button');
11     bt.click(function(){
12         a.off('click');
13         alert('event_off');
14     });
15 });
16 </script>
17 <title>Event</title>
18 </head>
19 <body>
20 <a href="#0">Click</a>
21 <button>event_off</button>
22 </body>

点击Button时取消了链接的点击事件,再点击链接不会出现提示框。

实际上,这里我们将a链接上的点击事件绑定函数全部取消了,如果只想取消某一个函数,那么我们在绑定时,就不能够采用匿名函数。并且在取消时,将函数对象也作为参数传入。

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 3 <script src="./js/jquery-1.12.0.js"></script>
 4 <script>
 5 $(function(){
 6     var click_f2 = function(){
 7         alert('hello 2');
 8     };
 9     var a = $('a');
10     a.click(function(){
11         alert('Hello');
12     }); 
13     a.click(click_f2);
14     
15     var bt = $('button');
16     bt.click(function(){
17         a.off('click',click_f2);
18         alert('click_f2 off');
19     });
20 });
21 </script>
22 <title>Event</title>
23 </head>
24 <body>
25 <a href="#0">Click</a>
26 <button>event_off</button>
27 </body>

这段代码中,我们只取消绑定了click_f2,而Hello仍然正常提示。同时我们可以发现绑定事件响应的先后顺序是根据绑定的先后来的。

 

事件通常是由用户操作触发,如果我们希望代码可以直接触发事件,则可用trigger(),这样能够避免我们写很多重复的代码。

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 3 <script src="./js/jquery-1.12.0.js"></script>
 4 <script>
 5 $(function(){
 6     var a = $('a');
 7     a.click(function(){
 8         alert('Hello');
 9     }); 
10     
11     var bt = $('button');
12     bt.click(function(){
13         a.trigger('click');
14     });
15 });
16 </script>
17 <title>Event</title>
18 </head>
19 <body>
20 <a href="#0">Click</a>
21 <button>event_off</button>
22 </body>

当我们点击按钮时,我们在代码内部触发了a的点击事件,因此也能弹出Hello。

 

动画:

我们已经知道了通过show()和hide()方法,可以让一个jQuery对象消失或者隐藏。但是当我们给方法传入一个参数时,页面就能呈现渐变的效果,一般传入的参数是毫秒数,但是'slow'和'fast'也能作为参数传入。

show()和hide()是对象由左上角逐渐收起或是展开,而slideUp()和slideDown()则是垂直方向的收起和展开。

fadeIn()和fadeOut()表示渐入渐出的效果。

同时,jQuery还通过animate()支持自定义动画效果。给animate传入最终的CSS样式和变化的时间,则可以在指定时间内渐变成最后的样式。同时,animate还能够传入回调函数,在动画结束后被调用。

 1 <head>
 2 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 3 <title>Animate</title>
 4 <script src='./js/jquery-1.12.0.js'></script>
 5 <script>
 6 $(function(){
 7     var bt = $('button');
 8     var div = $('#test-animate');
 9     bt.click(function(){
10         div.animate({
11             width: '256px',
12             height: '256px'
13         },3000,function(){
14             alert('animate done');
15         });
16     }); 
17 });
18 </script>
19 </head>
20 <body>
21 <div id='test-animate'></div>
22 <button>change CSS</button>
23 </body>

 

转载于:https://www.cnblogs.com/insaneXs/p/5213529.html

相关文章:

  • WordPress 优化方法大全
  • C#中的IntPtr类型
  • 在XCode中使用XCTest
  • wordpress在IIS下无rewrite利用cos-html-cache实现静态页面
  • java基础知识系列---内部类
  • 32BPP窗口模式下24位位图的像素操作(2)
  • 帮你的WordPress博客添加主页、文章页的关键字和描述
  • 域名带www与不带www重定向问题
  • 引用和指针
  • 301重定向www域名
  • sass入门
  • 实现一个均匀Tile的卷轴显示引擎
  • linux rpm包解压
  • 教你彻底实现红黑树:红黑树的c源码实现与剖析
  • 【one day one linux】好用的数据处理工具awk
  • Apache Zeppelin在Apache Trafodion上的可视化
  • download使用浅析
  • E-HPC支持多队列管理和自动伸缩
  • Java方法详解
  • Meteor的表单提交:Form
  • Python学习笔记 字符串拼接
  • scrapy学习之路4(itemloder的使用)
  • SSH 免密登录
  • Web标准制定过程
  • 创建一种深思熟虑的文化
  • 复习Javascript专题(四):js中的深浅拷贝
  • 回顾2016
  • 将回调地狱按在地上摩擦的Promise
  • 力扣(LeetCode)965
  • 判断客户端类型,Android,iOS,PC
  • 前端路由实现-history
  • 前端性能优化--懒加载和预加载
  • 浅谈JavaScript的面向对象和它的封装、继承、多态
  • 为物联网而生:高性能时间序列数据库HiTSDB商业化首发!
  • 无服务器化是企业 IT 架构的未来吗?
  • 学习使用ExpressJS 4.0中的新Router
  • (Demo分享)利用原生JavaScript-随机数-实现做一个烟花案例
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (react踩过的坑)Antd Select(设置了labelInValue)在FormItem中initialValue的问题
  • (四)图像的%2线性拉伸
  • (提供数据集下载)基于大语言模型LangChain与ChatGLM3-6B本地知识库调优:数据集优化、参数调整、Prompt提示词优化实战
  • (推荐)叮当——中文语音对话机器人
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET成年了,然后呢?
  • .net快速开发框架源码分享
  • :“Failed to access IIS metabase”解决方法
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [acwing周赛复盘] 第 69 场周赛20220917
  • [AIGC] Redis基础命令集详细介绍
  • [Android Pro] android 混淆文件project.properties和proguard-project.txt
  • [android] 请求码和结果码的作用
  • [EULAR文摘] 利用蛋白组学技术开发一项蛋白评分用于预测TNFi疗效
  • [excel与dict] python 读取excel内容并放入字典、将字典内容写入 excel文件
  • [ffmpeg] 定制滤波器