当前位置: 首页 > news >正文

封装常用的Javascript跨浏览器方法

var EventUntil={
	// 跨浏览器的添加事件方法
	addHandler:function(element,type,handler){
		if(element.addEventListener){
			element.addEventListener(type,handler,false);
		}else if(element.attachEvent){
			element.attachEvent('on'+type,handler);
		}else{
			element['on'+type]=handler;
		}
	},// 注意此处的逗号

	// 跨浏览器的移除事件方法
	removeHandler:function(element,type,handler){
		if(element.removeEventListener){
			element.removeEventListener(type,handler,false);
		}else if(element.detachEvent){
			element.detachEvent('on'+type,handler);
		}else{
			element['on'+type]=null;
		}
	},

	// 跨浏览器的事件对象
	// 返回对event对象的引用
	getEvent:function(event){
		return event ? event : window.event;
	},
	// 返回事件的目标
	getTarget:function(event){
		return event.target || event.srcElement;
	},
	// 取消事件的默认行为
	preventDefault:function(event){
		if(event.preventDefault){
			event.preventDefault();
		}else{
			event.returnValue=false;
		}
	},
	// 阻止事件冒泡
	stopPropagation:function(event){
		if(event.stopPropagation){
			event.stopPropagation();
		}else{
			event.cancelBubble=true;
		}
	},

	//通过class获取元素(数组集合)
	getByClass:function(clsName,parent){
		var oParent = parent ? document.getElementById(parent) : document,
			oAllel=document.getElementsByTagName('*'),
			aResult=[];
		for(var i=0 ; i<oAllel.length; i++){
			if(oAllel[i].className==clsName){
				aResult.push(oAllel[i]);
			}
		}
		return aResult;
	}
}

 

转载于:https://www.cnblogs.com/lvmylife/p/5351658.html

相关文章:

  • 如何安装linux系统
  • linux系统优化脚本实现
  • php用GD库给图片添加水印
  • [性能]ulimit与systemtap
  • 问题1:javascript的函数对象问题
  • 进程大概枝杈【B篇】进程间通信
  • iOS开发中的错误整理,导航控制器的导航栏取消系统渲染的错误
  • 回顾 Swift 多平台移植进度 #2
  • css3 渐变实例2径向渐变
  • 重构第24天 分解复杂的判断(Remove Arrowhead Antipattern)
  • 数据库下载
  • 聊聊并发(四)深入分析ConcurrentHashMap
  • Android 使用ViewPager实现左右循环滑动图片
  • Python 命令行参数和getopt模块详解
  • 图的广度优先搜索(BFS)
  • [原]深入对比数据科学工具箱:Python和R 非结构化数据的结构化
  • 【css3】浏览器内核及其兼容性
  • angular组件开发
  • CentOS7简单部署NFS
  • CSS进阶篇--用CSS开启硬件加速来提高网站性能
  • C学习-枚举(九)
  • js数组之filter
  • js学习笔记
  • PermissionScope Swift4 兼容问题
  • spring security oauth2 password授权模式
  • SQL 难点解决:记录的引用
  • SQLServer之创建数据库快照
  • vue数据传递--我有特殊的实现技巧
  • WebSocket使用
  • Windows Containers 大冒险: 容器网络
  • 湖南卫视:中国白领因网络偷菜成当代最寂寞的人?
  • 免费小说阅读小程序
  • 那些被忽略的 JavaScript 数组方法细节
  • 扫描识别控件Dynamic Web TWAIN v12.2发布,改进SSL证书
  • 使用agvtool更改app version/build
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • 微信如何实现自动跳转到用其他浏览器打开指定页面下载APP
  • 我与Jetbrains的这些年
  • Oracle Portal 11g Diagnostics using Remote Diagnostic Agent (RDA) [ID 1059805.
  • k8s使用glusterfs实现动态持久化存储
  • 阿里云IoT边缘计算助力企业零改造实现远程运维 ...
  • $.ajax中的eval及dataType
  • %check_box% in rails :coditions={:has_many , :through}
  • (C语言)fgets与fputs函数详解
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (南京观海微电子)——I3C协议介绍
  • (十八)SpringBoot之发送QQ邮件
  • (十八)三元表达式和列表解析
  • (一)u-boot-nand.bin的下载
  • (已更新)关于Visual Studio 2019安装时VS installer无法下载文件,进度条为0,显示网络有问题的解决办法
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转载)OpenStack Hacker养成指南
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)