combox控件触发事件_dom事件
DOM事件
1. DOM事件
事件三要素:事件源、事件、事件驱动程序
- 事件源,也就是需要操作的对象,例如:
var box = document.getElementById("box");
- 事件,例如:onclick、onmouseenter等,例如:
box.onclick = function() { 程序 };
- 事件驱动程序,就是接下来我们将要要学习的关于DOM的操作,例如:
this.innerHTML = "我是一个div盒子";
1.1 单击事件
| 事件 | 描述 | | :---: | :---: | | onclick | 鼠标点击某个对象 |
实例:给文档中的 id="box"
元素添加点击事件。
<script>window.onload = function () {var obj = document.getElementById("box");obj.onclick = function () {alert("单击事件");}}
</script>
我们也可以给元素直接添加点击事件。
<body><div onclick="testClick()">点击我</div><script>function testClick() {alert("单击事件");}</script>
</body>
1.2 双击事件
| 事件 | 描述 | | :---: | :---: | | ondblclick | 鼠标双击某个对象 |
实例:给文档中的 id="btn"
元素添加点击事件。
<body><div id="btn">双击事件</div><script>var btn = document.getElementById("btn");btn.ondblclick = function () {console.log("双击事件");};</script>
</body>
注意:如果对同一个元素添加单击事件和双击事件,需要我们自己手动区分!
1.3 焦点事件
| 事件 | 描述 | | :---: | :---: | | onfocus | 元素获得焦点时触发 | | onblur | 元素失去焦点时触发 |
实例:给文档中的id="uName"
元素添加点击事件。
<body><input id="uName" type="text"><script>var input = document.getElementById("uName");input.onfocus = function () {console.log("获取焦点");};input.onblur = function () {console.log("失去焦点");}</script>
</body>
1.4 改变事件
| 事件 | 描述 | | :---: | :---: | | onchange | 域的内容被改变触发,用于input、select和textarea标签。 |
实例:给文档中的<select>
和<input>
元素添加改变事件。
<body>
故乡:<select name="city" id="city"><option value="1">北京</option><option value="2">上海</option><option value="3">广州</option><option value="4">武汉</option></select>
密码:<input id="password" type="password" placeholder="请输入密码">
<script>var city = document.getElementById("city");city.onchange = function () {console.log("选中的城市:" + this.value);};var password = document.getElementById("password");password.onchange = function () {console.log("选中的城市:" + this.value);};
</script>
1.5 鼠标事件
| 事件 | 描述 | | :---: | :---: | | onmouseover | 鼠标进入元素 | | onmouseout | 鼠标离开元素 | | onmousedown | 鼠标被按下 | | onmouseup | 鼠标被松开 | | onmousemove | 鼠标在元素上面移动 |
当鼠标指针穿过元素时,会发生 onmouseenter 事件。该事件大多数时候会与 onmouseleave 事件一起使用。onmouseover 事件和 onmouseout 事件一起使用。
与 onmouseover 事件不同,只有在鼠标指针穿过被选元素时,才会触发 onmouseenter 事件。如果鼠标指针穿过任何子元素,同样会触发 onmouseover 事件。
实例:给文档中的id="box"
元素添加鼠标事件。
<body><div id="box"></div><script>window.onload = function () {var box = document.getElementById("box");// 鼠标进入box.onmouseenter = function () {console.log("鼠标进入");};// 鼠标移动box.onmousemove = function () {console.log("鼠标移动");};// 鼠标按下box.onmousedown = function () {console.log("鼠标按下");};// 鼠标抬起box.onmouseup = function () {console.log("鼠标抬起");};// 鼠标离开box.onmouseleave = function () {console.log("鼠标离开");}}</script>
</body>
1.6 键盘事件
| 事件 | 描述 | | :---: | :---: | | onkeydown | 键盘按钮按下 | | onkeyup | 键盘按钮弹起 |
实例:给文档中的id="box"
元素添加鼠标事件。
<body>
<script>document.body.onkeydown = function () {console.log("键盘按钮按下");};document.body.onkeyup = function () {console.log("键盘按钮弹起");}
</script>
</body>
2. event事件对象
2.1 event属性
| 属性 | 描述 | 事件 | | :---: | :---: | :---: | | altKey | 当事件触发时是否按下了alt键 | 键盘事件 | | ctrlKey | 当事件触发时是否按下了ctrl键 | 键盘事件 | | shiftKey | 当事件触发时是否按下了shift键 | 键盘事件 | | button | 当事件触发时是按的鼠标的哪个键 | 鼠标事件 | | clientX | 设置或获取鼠标指针位置相对于窗口客户区域的 x 坐标,其中客户区域不包括窗口自身的控件和滚动条。 | 鼠标事件 | | clientY | 设置或获取鼠标指针位置相对于窗口客户区域的 y 坐标,其中客户区域不包括窗口自身的控件和滚动条。 | 鼠标事件 | | keyCode | 得到被按下键的ASCESC 编码 | 键盘事件 | | type | 返回当前 Event 对象表示的事件的名称 | 任意事件 | | target | 最初触发事件的DOM元素,特指事件触发源 | 任意事件 | | currentTarget | 在事件冒泡阶段中的当前DOM元素,特指当前事件源 | 任意事件 |
当前事件源,它的值一定是this(event.currentTarget == this); 事件触发源,它的值为不一定是this(event.target ?== this)。
2.2 event方法
2.2.1 阻止事件冒泡
防止事件冒泡到DOM树上,也就是不触发的任何前辈元素上的事件处理函数。
| 方法 | 事件 | | :---: | :---: | | event.stopPropagation() | 任意事件 |
实例:阻止文档中 id="child"
的元素事件派发。
<body><div id="parent"><div id="child"></div></div><script>var parent = document.getElementById("parent");var child = document.getElementById("child");child.onclick = function (event) {console.log("child -- 子类被触发");// 阻止事件派发event.stopPropagation();};parent.onclick = function () {console.log("parent -- 父类被触发");}</script>
</body>
2.2.2 取消事件默认行为
| 方法 | 描述 | 事件 | | :---: | :---: | :---: | | preventDefault() | 取消事件的默认动作。 | 任意事件 |
事件冒泡:是因为事件会按照DOM的层次结构像水泡一样不多向上直至顶端。
实例:阻止文档中 id="link"
元素的默认行为。
<body><a id="link" href="http://www.baidu.com">百度一下,你就知道</a><script>var link = document.getElementById("link");link.onclick = function (event) {// 阻止默认行为event.preventDefault();};</script>
</body>
3.DOM事件案例
3.1 下拉更换背景图片
知识要点:改变事件 + CSS样式操作
3.1 天猫切换商品图片
知识要点:鼠标进入事件 + CSS样式操作 + 闭包
3.2 小蜜蜂飞呀飞
知识要点:鼠标移动事件 + CSS样式操作
combox控件触发事件_dom事件相关推荐
- [转]如何在数据绑定时不让combox控件触发SelectedIndexChanged事件
this.cboVendor.SelectedIndexChanged -= new System.EventHandler(this.cboVendor_SelectedIndexChanged); ...
- 在asp.net中为Web用户控件添加属性和事件
在90年代初,Microsoft为Web程序员提供的 Active Server Pages(ASP)革命性地改变了Web的编程.它可以利用十分易用的模型在Web服务器上动态生成HTML,并且很容易的 ...
- 金蝶EAS DEP脚本(5)给常用控件添加值改变事件
给常用控件添加事件 一.F7 给F7添加值改变事件 //F7控件增加值改变监听 pluginCtx.getKDBizPromptBox("prmtCompany").addData ...
- 学习笔记:VB.net动态添加控件数组并传递事件
学习笔记:VB.net动态添加控件数组并传递事件 控件数组和事件 "中间人" 动态添加控件 控件数组和事件 新建一个用户窗体,在定义控件数组时,不能用Withevnets来定义数组 ...
- openlayer右键菜单_让OpenLayers的SelectFeature控件支持鼠标右键事件
OpenLayers上的一个Feature对象单击出现一个气泡很容易实现,但是右键出现点菜单什么的就不容易了,关键在于SelectFeature控件不支持右键事件,所以我就改之.. 修改的源文件是基于 ...
- Kodak图像扫描控件的属性、事件、方法
Kodak图像扫描控件的属性.事件.方法 1. Kodak图像扫描控件的属性 (1)DestImageControl属性 字符型.该属性连接图像扫描控件到一个图像编辑控件,允许在扫描完毕后查看图像. ...
- 关于日期控件中使用change事件无效的解决方法
前端页面突然需要在选择时间后自动获取所选时间内的设备信息,我立刻写了一个change()方法,测试时发现没有触发 原因是:change事件其实就是在元素获得焦点的时候,保存当前值,失去焦点的时候,会将 ...
- Combox控件下拉选择不同值触发的动作响应
项目中需要根据combox控件下拉列表选择不同的值,然后能触发相应的动作.比如我的项目中,通过combox空间的下拉列表选择不同的C盘,D盘,E盘,F盘,然后能在list控件中把各个盘符的文件目录列出 ...
- vs2005的webbrowser控件如何接收鼠标事件
这个问题来自论坛提问,vs2005的webbrowser控件如何接收鼠标事件,很多事情其实自己动动脑子就有办法的.主要是3步,给dom对象插入js脚本去响应鼠标-〉通过url跳转去通知webbrows ...
- Qt安装事件过滤器、过滤子控件事件、截获控件按键、鼠标事件
Qt安装事件过滤器.过滤子控件事件.截获控件按键.鼠标事件 Qt的事件模型一个强大的功能是一个QObject对象能够监视发送其他QObject对象的事件,在事件到达之前对其进行处理. 假设我们有一个C ...
最新文章
- MooTools教程(1):认识MooTools
- 解决selenium用cookies时候报错selenium.common.exceptions.InvalidArgumentException: Message: invalid argument
- 【UWB】Kalman filter, KF卡尔曼滤波, EKF 扩展卡尔曼滤波
- 巴菲特的价值投资的第二版本
- BugKuCTF WEB web基础$_POST
- Android开发如何使用JNA
- 数据分析师mysql基础_数据分析师之mysql入门——数据检索
- Vue的数据依赖实现原理简析
- java asm methodvisitor 定义局部变量_Java ASM3学习(3)
- Go编译android,在Android中引用golang编译的aar包
- makefile初步制作,arm-linux- (gcc/ld/objcopy/objdump)详解
- Java权限管理(授权与认证)
- 绿坝十年,儿童网络安全保护问题仍未解决
- CVPR2020 Rotate-and-Render: Unsupervised Photorealistic Face Rotation from Single-View Images论文笔记
- 我陪你慢慢成长——苏子语录2015下半…
- 怎么拯救一个不大靠谱的数据库系统 (5 不靠谱的前生)
- 北京某牧场管理企业——牧场智慧管理项目
- java useragent 360 遨游 火狐_Chrome与火狐修改浏览器User Agent教程
- consider increasing the maximum size of the cache. After eviction approximately [9,230] KB of data
- 这份 pip 使用方法,应该算是全网最全了
热门文章
- 表或视图不存在 Hibernate Oracle
- C# System.Drawing.SystemColors 系统颜色
- 获取OlapConnection连接
- [poj2449]Remmarguts' Date(spfa+A*)
- 使用python的Tkinter构建应用程序
- WCF集成COM+应用程序遇到的问题
- 如何实现:GridView 控件中显示的文本不自动换行,隐藏超出宽度部分wj-wangjun
- docker入门、docker基本命令
- mysqlplus 字段验证策略fieldStrategy
- redis等缓存和mysql的数据同步问题解决思路