DOM2级事件对象、添加事件、阻止默认事件、阻止冒泡事件、获取事件对象目标的兼容处理
事件对象——兼容处理
/*
* 功能: 事件对象兼容
* 参数: 表示常规浏览器的事件对象e
*/
function getEvent(e) {
// 如果存在e存在,直接返回,否则返回window.event
7 return e || window.event;
8 }
获取事件所对应的目标——兼容处理
/*
* 功能: 获取事件所对应的目标
* 参数: 表示常规浏览器的事件对象e
*/
function getTargetByEvent(e) {
// 如果存在e.target,直接返回,否则返回window.event.srcElement
return e.target || window.event.srcElement;
}
添加事件——兼容处理
/*
* 功能: 添加事件
* 参数:
*/
function addEventHandler(element, eventName, handler) {
// 三目(条件)运算符,如果存在document.addEventListener直接调用,否则调用document.attachEvent这个方法
document.addEventListener ? element.addEventListener(eventName, handler, flase) : element.attachEvent('on' + eventName, handler);
}
阻止默认事件——兼容处理
/*
* 功能: 阻止默认事件
* 参数: 表示要阻止的事件对象
*/
function stopDefaultEvent(e) {
// 三目(条件)运算符,如果存在e.preventDefault直接调用,否则使用window.event.returnValue = false;
e.preventDefault ? e.preventDefault() : (window.event.returnValue = false);
}
阻止冒泡事件——兼容处理
/*
* 功能: 阻止冒泡事件
* 参数: 表示要阻止的事件对象
*/
function stopBubbleEvent(e) {
e.stopPropagation ? e.stopPropagation() : (window.event.cancelBubble = true);
}
以上为一些事件对象所涉及到的兼容处理。
其实JS的兼容处理比较简单,无非就是判断浏览器是否有此方法(对象),如果有的话,就直接调用(获取),否则使用另外的方法。
DOM2级事件对象、添加事件、阻止默认事件、阻止冒泡事件、获取事件对象目标的兼容处理的更多相关文章
- spring练习,在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXmlApplicationContext实体类获取Bean对象
相关 知识 >>> 相关 练习 >>> 实现要求: 在Eclipse搭建的Spring开发环境中,使用set注入方式,实现对象的依赖关系,通过ClassPathXm ...
- JavaScript 阻止默认时间和冒泡时间
<!DOCTYPE HTML><html> <head> <title>event cancel</title> </head> ...
- addevent兼容函数 && 阻止默认行为 && 阻止传播
function addEvent(a, b, c, d) { a.addEventListener ? a.addEventListener(b, c, d) : a.attachEvent(&qu ...
- 1 实现添加功能 1.1 定义一个学员类(Student),在Student类中定义姓名、性别和年龄属性,定义有 参数的构造方法来初始化所以的成员属性 1.2 创建学员类对象来存放学员信息,并且为每一个学生对象添加的相应的编号。并将 学员类对象添加到Map<Integer,Student>集合中 1.3 添加完成后,显示所有已添加的学员姓名 1.4 限制年龄文本框只能输入正整数,否则的会采
学生类 package com.lanxi.demo1_3; public class Student { private String name; private String sex; priva ...
- javascript获取事件源对象和产生事件的对象
事件源对象是指event对象,其封装了与事件相关的详细信息,比如按键状态. 获取事件源对象的方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1. ...
- Web:移动端阻止默认行为的小坑
问题 移动端 web 开发中,使用 addEventListener 阻止了 touchstart 事件的默认行为却发现没有生效 描述 再移动端 web 开发中,我们一般会用 addEventList ...
- js事件委托篇(附js一般写法和js、jq事件委托写法)
参考: jQuery代码优化:事件委托篇 使用该技术能让你避免对特定的每个节点添加事件监听器:相反,事件监听器被添加在他们的父元素上,事件监听器会分析从子元素上冒泡上来的事件,并找到是哪个子元素事件. ...
- 获取JSON对象的属性值
1.问题背景 有一个json对象,其中有键值对,那怎样获取json对象中属性值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
- 反射:获取Class对象的三种方式
获取Class对象的三种方式 package lianxiApril18; /** * 获取Class对象的三种方式 * 1 Object ——> getClass(); * 2 任何数据类型( ...
随机推荐
- oracle在SQLPLUS 和PLSQL建 job 的区别
oracle在SQLPLUS 和PLSQL建 job 的区别 //建立job variable test_job_really number; begin dbms_job.submit(:test_ ...
- 操作系统学习笔记_12_I/O管理 --I/O管理概述
h1 { margin-bottom: 0.21cm; }h1.western { font-family: "Liberation Sans",sans-serif; font- ...
- poj3671Dining Cows(DP)
主题链接: 啊哈哈,点我点我 题意: 给一个仅仅含有1.2的序列,如何变换n次使序列成为一个非递减的序列,而且使n最小. 思路: 这道题的数据范围是50000,则肯定承受不了n方的复杂度.所以 仅仅能 ...
- 使用newLISP由SMTPserver发送电子邮件
直接使用的标准模块smtpx.lsp, smtp.lsp你可以不设置port,庭审后,没用. 以下是一个示例代码: #!/usr/bin/newlisp (set 'debug-flag true) ...
- 《CS:APP》 chapter 8 Exceptional Control Flow 注意事项
Exceptional Control Flow The program counter assumes a sequence of values ...
- Android ADT Bundle(Eclipse with ADT) ADT R23
ADT Bundle Platform Package Size MD5 Checksum Windows 32-bit adt-bundle-windows-x86-20140624.zip 377 ...
- 《Javascript权威指南》十六学习笔记:BOM资源---BOM基本应用
BOM基本应用包括:管理浏览器历史记录.得到处理和解决浏览器的信息.本文介绍了这些应用程序. 一.浏览历史管理 1.history对象的方法和属性 History 对象包括用户(在浏览器窗体中)訪问过 ...
- 十天学Linux内核之第三天---内存管理方式
原文:十天学Linux内核之第三天---内存管理方式 昨天分析的进程的代码让自己还在头昏目眩,脑子中这几天都是关于Linux内核的,对于自己出现的一些问题我会继续改正,希望和大家好好分享,共同进步.今 ...
- HDU 1203 I NEED A OFFER!(dp)
Problem Description Speakless很长时间,我想出国.现在,他已经完成了所有需要的检查.准备好所有要准备的材料,于是,便须要去申请学校了.要申请国外的不论什么大学.你都要交纳一 ...
- Alice's Chance
id=1698" style="background-color:rgb(51,255,51)">主题链接 意甲冠军: 爱丽丝要拍电影.有n部电影,规定爱丽丝第i部 ...