javascript 中select框触发事件过程的分析


Posted in Javascript onAugust 01, 2017

javascript 中select框触发事件过程的分析

我们书写了mousedown,mouseup,click,input,change,focus,blur,keydowm,keydown事件绑定到了select上面,模拟客户选择相关事件的触发流程:

最后发现,触发的过程基本上一样,如果没有选择或者选择的是当前显示的option的话,不会触发change事件,只有在选择不同的option时候才会触发change事件。下面是选择了不同的option后触发事件的截图:

javascript 中select框触发事件过程的分析

我们可以发现,做出改变了可以触发input事件和change事件,而如果没有改变或者下拉出现了直接点击 别的地方,则不会促发这两个事件:

javascript 中select框触发事件过程的分析

附上代码:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
  <meta charset="UTF-8"> 
  <title>Title</title> 
</head> 
<body> 
<select name="" id="input"> 
  <option value="1">1</option> 
  <option value="">2</option> 
  <option value="">3</option> 
  <option value="">4</option> 
  <option value="">5</option> 
</select> 
</body> 
<script> 
  document.getElementById("input").addEventListener("focus",function () { 
    console.log("focus"); 
  }); 
 
  document.getElementById("input").addEventListener("mousedown",function () { 
    console.log("mousedown"); 
  }); 
 
  document.getElementById("input").addEventListener("mouseup",function () { 
    console.log("mouseup"); 
  }); 
 
  document.getElementById("input").addEventListener("input",function () { 
    console.log("input"); 
  }); 
 
  document.getElementById("input").addEventListener("change",function () { 
    console.log("change"); 
  }); 
 
  document.getElementById("input").addEventListener("blur",function () { 
    console.log("blur"); 
  }); 
 
  document.getElementById("input").addEventListener("click",function () { 
    console.log("click"); 
  }); 
 
  document.getElementById("input").addEventListener("keydown",function () { 
    console.log("keydown"); 
  }); 
 
  document.getElementById("input").addEventListener("keyup",function () { 
    console.log("keyup"); 
  }); 
 
  document.getElementById("input").addEventListener("select",function () { 
    console.log("select"); 
  }); 
 
 
</script> 
</html>

以上就是javascript 中select框触发事件过程的分析,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

Javascript 相关文章推荐
用jquery实现的模拟QQ邮箱里的收件人选取及其他效果(一)
Jan 06 Javascript
javascript jscroll模拟html元素滚动条
Dec 18 Javascript
打印json对象的内容及JSON.stringify函数应用
Mar 29 Javascript
ExtJS4中的requires使用方法示例介绍
Dec 03 Javascript
JavaScript针对网页节点的增删改查用法实例
Feb 02 Javascript
Jquery实现鼠标移动放大图片功能实例
Mar 25 Javascript
动态加载JavaScript文件的两种方法
Apr 22 Javascript
AngularJS读取JSON及XML文件的方法示例
May 25 Javascript
小程序实现授权登陆的解决方案
Dec 02 Javascript
微信小程序使用wxParse解析html的方法示例
Jan 17 Javascript
使用PreloadJS加载图片资源的基础方法详解
Feb 03 Javascript
JavaScript实现tab栏切换效果
Mar 16 Javascript
谈谈对vue响应式数据更新的误解
Aug 01 #Javascript
详解jquery选择器的原理
Aug 01 #jQuery
浅谈node中的exports与module.exports的关系
Aug 01 #Javascript
Vue2.0 组件传值通讯的示例代码
Aug 01 #Javascript
谈谈VUE种methods watch和compute的区别和联系
Aug 01 #Javascript
Angular4学习笔记之实现绑定和分包
Aug 01 #Javascript
详解js静态资源文件请求的处理
Aug 01 #Javascript
You might like
PHP中的加密功能
2006/10/09 PHP
非常重要的php正则表达式详解
2016/01/04 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
javascript 密码强度验证规则、打分、验证(给出前端代码,后端代码可根据强度规则翻译)
2010/05/18 Javascript
jQuery1.6 正式版发布并提供下载
2011/05/05 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
2011/09/29 Javascript
js浏览器本地存储store.js介绍及应用
2014/05/13 Javascript
jquery选择器需要注意的问题
2014/11/26 Javascript
Jquery ajax基础教程
2015/11/20 Javascript
js运动应用实例解析
2015/12/28 Javascript
Angularjs实现多个页面共享数据的方式
2016/03/29 Javascript
简单实现Vue的observer和watcher
2016/12/21 Javascript
JS通过调用微信API实现微信支付功能的方法示例
2017/06/29 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
9种使用Chrome Firefox 自带调试工具调试javascript技巧
2017/12/22 Javascript
vue.js 嵌套循环、if判断、动态删除的实例
2018/03/07 Javascript
javascript与PHP动态往类中添加方法对比
2018/03/21 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
js+html实现周岁年龄计算器
2019/06/25 Javascript
Python连接SQLServer2000的方法详解
2017/04/19 Python
Python中sort和sorted函数代码解析
2018/01/25 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
2019/09/26 Python
解决pyPdf和pyPdf2在合并pdf时出现异常的问题
2020/04/03 Python
Python 在局部变量域中执行代码
2020/08/07 Python
pyx文件 生成pyd 文件用于 cython调用的实现
2021/03/04 Python
CSS伪类与CSS伪元素的区别及由来具体说明
2012/12/07 HTML / CSS
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
家得宝官网:The Home Depot(全球最大的家居装饰专业零售商)
2018/12/17 全球购物
Java如何格式化日期
2012/08/07 面试题
static全局变量与普通的全局变量有什么区别?static局部变量和普通局部变量有什么区别?static函数与普通函数有什么区别?
2015/02/22 面试题
销售员自我评价怎么写
2013/09/19 职场文书
《千年梦圆在今朝》教学反思
2014/02/24 职场文书
写景作文评语集锦
2014/12/25 职场文书
如何做好员工培训计划?
2019/07/09 职场文书
MySQL实战记录之如何快速定位慢SQL
2022/03/23 MySQL
linux目录管理方法介绍
2022/06/01 Servers