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,给我的印象:这是一门谈不上复杂的语言.大概这就是所谓的学的越浅,用的越少,觉得自己会的东西好像得更多吧!开始做基础练习题的时候觉得好像都十分简单.可是后来在做到对象数组的 ...
随机推荐
- Install boot2docker defaule username and password
username passowrd method docker tcuser ssh root command sudo -i
- 第五章 深入class文件结构(待续)
JVM指令集简介 class文件头的表示形式 常量池 类信息 Fields和Methods定义 类属性描述 Javap生成的class文件结构
- Django 学习之---静态文件处理详解
前言: 1.静态文件是指 网站中的 js, css, 图片,视频等文件 2.静态文件放在对应的 app 下的 static 文件夹中 或者 STATICFILES_DIRS 中的文件夹中. 当 DEB ...
- oracle数据库部分技巧
由于笔者在操作数据库时,遇到几个以前不太常见的操作,感觉有必要记录一下,如下: 1.查被锁表 SELECT object_name, machine, s.sid, s.serial# FROM ...
- C# WinForm中如何让当前应用程序只允许启动一个实例
我们在WinForm开发中,很多情况下是需要只允许让用户运行一个实例,那么代码其实很简单.只需要修改Program.cs文件,代码如下 static class Program { /// <s ...
- jquery-messager-消息提示
一.页面引入 jquery.js 下载地址问度娘 jquery-message.js 下载地址:jquery-message.js 二.页面使用 //ajax轮询检查新的订单 function che ...
- css垂直居中方法(二)
第四种方法: 这个方法把一些div的显示方式设置为表格,因此我们可以使用表格的vartial-align属性. 代码如下: <!doctype html> <html lang=&q ...
- 基于ActiveMQ的Topic的数据同步——消费者持久化
前面一章中介绍了activemq的初步实现:基于ActiveMQ的Topic的数据同步——初步实现 下面来解决持久化订阅的问题: (1)使用queue,即队列时,每个消息只有一个消费者,所以,持久化很 ...
- 【272】ArcPy处理数据
参考:ArcPy 函数列表(按字母顺序) 参考:在arcgis上用python脚本(arcpy)做数据批处理 1. 导入 ArcPy,定义 Workspace >>> import ...
- activity状态保存的bundl对象存放位置的思考
我们知道,当activity被异常终止时,可以把一些信息保存到bundle对象中,在下次启动时恢复. 那么,这个bundle对象是保存在哪里的呢? 这种状态保存的方法针对的是activity而不是进程 ...