JS基础学习四:绑定事件
添加事件
IE: attachEvent
Other: addEventListener
- var button = document.getElementById("buttonId");
- if(button.addEventListener){
- button.addEventListener("click",eventFunction,false);
- }else if(button.attachEvent){
- button.attachEvent("onclick",eventFunction);
- }
删除事件
IE: detachEvent
Other: removeEventListener
事件冒泡机制
IE: 事件从它发生的地方被触发,然后向DOM结构的上层冒泡
Other: 事件先向下沉入到目标元素,再向上冒泡
addEventListener( , ,[true|false])
- true: 向下沉入时截获事件
- false: 向上冒泡时截获事件
停止事件冒泡:
IE: window.event.cancelBubble=false;
Other: e.stopPropagation();
实验的例子:
- function bindEvent() {
- var button = document.getElementById("buttonId");
- if (button.addEventListener) {
- alert("Other browser");
- //button.addEventListener("click",showEvent,false);
- //button.addEventListener("click",showEvent2,false);
- button.addEventListener("click", showEvent, true);
- button.addEventListener("click", showEvent2, true);
- } else if (button.attachEvent) {
- alert("IE browser");
- button.attachEvent("onclick", showEvent);
- button.attachEvent("onclick", showEvent2);
- }
- }
- function removeEvent() {
- var button = document.getElementById("buttonId");
- if (button.removeEventListener) {
- alert("Other browser");
- //button.removeEventListener("click",showEvent,false);
- button.removeEventListener("click", showEvent, true);
- } else if (button.detachEvent) {
- alert("IE browser");
- button.detachEvent("onclick", showEvent);
- }
- }
- function showEvent(e) {
- if (window.event != undefined) {
- window.event.cancelBubble = true;
- } else if (e.stopPropagation) {
- e.stopPropagation();
- }
- alert("Event here!");
- }
- function showEvent2() {
- alert("Other event here!");
- }
- function divEvent() {
- alert("Div Event");
- }
- <div onclick="divEvent()">
- <input type="button" id="buttonId" value="showEvent"/>
- </div>
键盘事件
- window.onload=function(){
- //绑定键盘事件
- document.onkeydown=showkey;
- }
- function showkey(e){
- var key;
- if(window.event)
- key= window.event.keyCode;
- else
- key= e.keyCode;
- alert(String.fromCharCode(key));
- }
鼠标事件
获取mouse的位置
IE: clientX,clientY
Other: pageX, pageY
- document.onmouseover= showPosition;
JS基础学习四:绑定事件的更多相关文章
- Node.js基础学习四之注册功能
前言:在Node.js学习(二)和(三)中介绍了如何在Node.js 中获取登录的用户名和密码与数据库进行验证并返回数据给客户端 需求:实现注册功能 为了区分登录和注册是两个不同的请求,在端口后面加上 ...
- JS基础学习——闭包
JS基础学习--闭包 什么是闭包 闭包的定义如下,它的意思是闭包使得函数可以记住和访问它的词法范围,即使函数是在它声明的词法范围外执行.更简单来讲,函数为了自己能够正确执行,它对自己的词法范围产生闭包 ...
- JS基础学习——作用域
JS基础学习--作用域 什么是作用域 变量的作用域就是变量能被访问到的代码范围,比如在下面的这个js代码中,变量a的作用域就是函数foo,因此在全局作用域内的console.log(a)语句不能访问到 ...
- JS基础学习——对象
JS基础学习--对象 什么是对象 对象object是JS的一种基本数据类型,除此之外还包括的基本数据类型有string.number.boolean.null.undefined.与其他数据类型不同的 ...
- Js为Dom元素绑定事件须知
为异步加载的Dom 元素绑定事件必须在加载完成之后绑定: $('body').load('LearnClickBinding.ashx');$('a').click(function () { ale ...
- Python基础学习四
Python基础学习四 1.内置函数 help()函数:用于查看内置函数的用途. help(abs) isinstance()函数:用于判断变量类型. isinstance(x,(int,float) ...
- salesforce lightning零基础学习(四) 事件(component events)简单介绍
lightning component基于事件驱动模型来处理用户界面的交互.这种事件驱动模型和js的事件驱动模型也很相似,可以简单的理解成四部分: 1.事件源:产生事件的地方,可以是页面中的输入框,按 ...
- vue学习(四) v-on:事件绑定
//html <div id="app"> <input type="button" value="ok" v-bind: ...
- JS 基础学习随想
2012年就已经接触过了js,给我的印象:这是一门谈不上复杂的语言.大概这就是所谓的学的越浅,用的越少,觉得自己会的东西好像得更多吧!开始做基础练习题的时候觉得好像都十分简单.可是后来在做到对象数组的 ...
随机推荐
- 下拉列表---demo---bai
select.jsp <%@ page language="java" import="java.util.*" pageEncoding="U ...
- CentOS 7.2 部署Rsync + Lsyncd服务实现文件实时同步/备份 (一)
接收端配置: 1.安装rsync yum -y install rsync 2.配置同步模块 1. 编辑同步配置文件 vi /etc/rsyncd.conf 2. 同步模块配置参数 # any nam ...
- Windows下自由创建.htaccess文件的N种方法
.htaccess是apache的访问控制文件,apache中httpd.conf的选项配合此文件,完美实现了目录.站点的访问控 制,当然最多的还是rewrite功能,即URL重写,PHP中实现伪静态 ...
- Java之——java.lang.NoSuchMethodException: [org.springframework.web.multipart.MultipartFile;.()
转自:https://blog.csdn.net/l1028386804/article/details/65449355 ava.lang.NoSuchMethodException: [org.s ...
- [Python Study Notes]双层柱状图绘制
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ...
- JAVA基础知识总结5(面向对象特征之一:继承)
继 承: 1:提高了代码的复用性. 2:让类与类之间产生了关系,提供了另一个特征多态的前提. 父类的由来:其实是由多个类不断向上抽取共性内容而来的. JAVA只支持单继承.java虽然不直接支持多继承 ...
- 第6章 使用springboot整合netty搭建后台
我们不会去使用自增长的id,在现阶段的互联网开发过程中,自增长的id是已经不适用了.在未来随着系统版本的迭代,用户数量的递增,肯定会做分库分表,去做一些相应的切分.在这个时候我们就需要有一个唯一的id ...
- cf688B-Lovely Palindromes
http://codeforces.com/problemset/problem/688/B B. Lovely Palindromes time limit per test 1 second me ...
- ReactNative http网络通讯
安装 fetch npm install whatwg-fetch --save 1.fetch的Get方式通讯 async sendGet(){ let response = await fetch ...
- ruby 类创建-继承-消息
############################################# #create ruby a class #@符号表示实例变量,相当于java的private 属性 ### ...