Js中的4个事件
除了加载文档的事件onload和鼠标相关的一些事件如onclick,onmouseover等。js还有一些相对不常用的事件,这些事件也有各自的应用场景,本文就介绍 onkeydown,oncontextmenu,onhashchang,onreadychange。可以发现,js中的事件没有采用驼峰表示法,字母组合全部小写。
1.onkeydown事件
外部输入设备鼠标有很多对应事件,键盘也有对应的事件,这就是onkeydown。例子:事件对象的keyCode属性可以弹出按下键盘上字母的编码。
<script>
document.onkeydown = function(ev){
var oevent = ev||event;
alert(oevent.keyCode); }
</script>
2. oncontextmenu事件
这个事件其实也是鼠标事件,比较特殊。当我们点击网页的右键,不同的浏览器会弹出自己的右键菜单,有 刷新(refresh)、查看网页源代码等选项。这就是oncontextmenu事件不加修改的话事件是浏览器的默认行为。列子:禁用浏览器的右键菜单,让事件函数返回false即可:
<script>
document.oncontextmenu=function(){
return false;
}
</script>
其实,上面的onkeydown也属于浏览器的默认事件,在<input>标签里,键盘按键会输入。我们还可让<input>只能输入数字,禁止其他字符。
3.onhashchang事件
关于hash属性的介绍资料已经很多了,这篇讲的很好http://www.ruanyifeng.com/blog/2011/03/url_hash.html,。这里介绍跟hash相关的事件- onhashchang,注意,当hash发生改变时,触发这个事件。
这是H5新增的事件。
4.onreadychange事件
ajax过程中事件,XMLHttpRequest的 readyState发生改变,会触发这个事件。
Js中的4个事件的更多相关文章
- js中的点击事件(click)的实现方式
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...
- JS中的异步以及事件轮询机制
一.JS为何是单线程的? JavaScript语言的一大特点就是单线程,也就是说,同一个时间只能做一件事.那么,为什么JavaScript不能有多个线程呢?这样能提高效率啊.(在JAVA和c#中的异步 ...
- JS中双击和单击事件冲突解决
在JS中代码中同一功能块中通常同时会用到单击.双击事件,但通常会遇到一个问题,就是在双击的时候即执行了一次双击事件,而且还执行了两次单击事件.此类冲突在ZTree.DHTMLX中经常遇到. 想要解决两 ...
- 为什么JS是单线程?JS中的Event Loop(事件循环)?JS如何实现异步?setimeout?
https://segmentfault.com/a/1190000012806637 https://www.jianshu.com/p/93d756db8c81 首先,请牢记2点: (1) JS是 ...
- JS中onpropertychange和onchange事件区别小结
当一个HTML元素的属性用js改变的时候,都能通过onpropertychange来捕获.例如一个文本text对象的value属性被页面的脚本修改的时候,onchange无法捕获到,而onproper ...
- node.js中对Event Loop事件循环的理解
javascript是单线程的,所以任务的执行都需要排队,任务分为两种,一种是同步任务,一种是异步任务. 同步任务是进入主线程上排队执行的任务,上一个任务执行完了,下一个任务才会执行. 异步任务是不进 ...
- bootstrap table 生成的表格里动态添加HTML元素按钮,JS中添加点击事件,点击没反应---解决办法
bootstraptable中onExpandRow属性---js 方法添加的 html代码,然后给这代码里面的 元素 添加 事件,却获取不该元素.(称之为未来元素),由于是未来的 所以现在没有这个 ...
- js中关于动态添加事件,不能使用循环变量的问题
在编写事件的时候,我们难免会遇到以下这种情况:<!DOCTYPE html><html lang="en"><head> <meta ch ...
- 关于js中的表单事件
表单结构如下所示: <form > <input type="text" name="txt" id="txt" valu ...
随机推荐
- Solr学习记录:Getting started
目录 Solr学习记录:Getting started 1.Solr Tutorial 2. A Quick Overview Solr学习记录:Getting started 本教程使用环境:jav ...
- 26.bulk批量操作
主要知识点 1.bulk语法 2.bulk使用时的注意事项 3.bulk size 对es性能的影响 一.bulk语法 每一个操作要两个json串(delete操作除外),每个json串占一行 ...
- Problem 20
Problem 20 问题网址:https://projecteuler.net/problem=20 n! means n × (n − 1) × ... × 3 × 2 × 1阶乘For exam ...
- python爬虫03:那个叫做 Urllib 的库让我们的 python 假装是浏览器
相信你已经摸清了 浏览器各种请求的套路 也知道了怎么在手机上进行请求和返回数据的抓取 那么接下来我们就开始来使用 python 了 代码 lu 起来 那么 怎么用 python 写各种请求呢? 今天要 ...
- Cleaning
Cleaning Time limit : 2sec / Memory limit : 256MB Score : 700 points Problem Statement There is a tr ...
- Spring Cloud Sleuth(十四)
作用 再微服务中 服务调用服务很常见.服务中相互调用链路追踪的尤为重要,能够帮助我们再异常时分析出哪个服务出了异常.以及各个链路中相互调用所消耗时间,通过这些数据能够帮助我们分析出各个服务的性能瓶颈 ...
- WinForm 登录窗体 + 单实例运行
关于怎么在winform里增加登录窗体或者如何让winform程序单实例运行网上都很多例子. 然而两者结合起来呢? //Program.cs static class Program { public ...
- LaTeX的简单使用方法
先来一个总结得比较好的https://blog.csdn.net/garfielder007/article/details/51646604 1.普通公式 $公式不换行$ $公式不换行$ $$公式独 ...
- 基于I/O的Server/Client实现
在前面的文章中讲了基于NIO实现的Server/Client.本文就讲讲基于同步堵塞式I/O实现的Server/Client好与前面的NIO中的Server/Client进行对照. 网络编程中须要解决 ...
- C++研究之在开发中你可能没有考虑到的两个性能优化
1:多余的存储引用导致性能减少. 2:利用局部性提高程序性能: 先来说说引用是怎么减少程序性能.个人觉得减少程序性能主要有两个原因,一是数据结构选择不合理,二是多层嵌套循环导致部分代码被多余反复 ...