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 相关文章推荐
select标签模拟/美化方法采用JS外挂式插件
Apr 01 Javascript
jquery弹出框的用法示例(2)
Aug 26 Javascript
通过location.replace禁止浏览器后退防止重复提交
Sep 04 Javascript
javascript验证内容为数字以及长度为10的简单实例
Aug 20 Javascript
AngularJs验证重复密码的方法(两种)
Nov 25 Javascript
redux中间件之redux-thunk的具体使用
Apr 17 Javascript
详解easyui基于 layui.laydate日期扩展组件
Jul 18 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
Feb 20 Javascript
记一次Vue.js混入mixin的使用(分权限管理页面)
Apr 17 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
Jun 03 Javascript
解决vue项目运行提示Warnings while compiling.警告的问题
Sep 18 Javascript
Chrome插件开发系列一:弹窗终结者开发实战
Oct 02 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 Smarty模板生成html文档的方法
2010/04/12 PHP
关于url地址传参数时字符串有回车造成页面脚本赋值失败的解决方法
2013/06/28 PHP
如何使用PHP对网站验证码进行破解
2015/09/17 PHP
php多线程实现方法及用法实例详解
2015/10/26 PHP
详解YII关联查询
2016/01/10 PHP
探讨JQUERY JSON的反序列化类 using问题的解决方法
2013/12/19 Javascript
浏览器缩放检测的js代码
2014/09/28 Javascript
JavaScript 事件对象介绍
2015/04/13 Javascript
学习JavaScript设计模式之装饰者模式
2016/01/19 Javascript
基于Nodejs利用socket.io实现多人聊天室
2017/02/22 NodeJs
详解Vue整合axios的实例代码
2017/06/21 Javascript
javascript实现Emrips反质数枚举的示例代码
2017/12/06 Javascript
浅谈vue-cli 3.0.x 初体验
2018/04/11 Javascript
JS模拟实现哈希表及应用详解
2018/05/04 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
在Linux上安装Python的Flask框架和创建第一个app实例的教程
2015/03/30 Python
使用Python脚本将文字转换为图片的实例分享
2015/08/29 Python
python安装教程 Pycharm安装详细教程
2017/05/02 Python
python 实现将字典dict、列表list中的中文正常显示方法
2018/07/06 Python
python监控进程状态,记录重启时间及进程号的实例
2019/07/15 Python
如何在Windows中安装多个python解释器
2020/06/16 Python
值得收藏的HTML5资源(学习html5的朋友可以收藏下)
2010/07/20 HTML / CSS
中层竞聘演讲稿
2014/01/09 职场文书
购房意向书
2014/04/01 职场文书
读书之星事迹材料
2014/05/12 职场文书
奉献演讲稿范文
2014/05/21 职场文书
缅怀先烈演讲稿
2014/09/03 职场文书
乡领导班子四风问题对照检查材料
2014/09/25 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
个人买房协议书范本
2014/10/06 职场文书
感谢信格式范文
2015/01/22 职场文书
村主任当选感言
2015/08/01 职场文书
高二英语教学反思
2016/03/03 职场文书
MySQL 使用事件(Events)完成计划任务
2021/05/24 MySQL
python pygame入门教程
2021/06/01 Python
使用Redis实现实时排行榜功能
2021/07/02 Redis