js添加事件/移除事件/阻止冒泡/阻止默认行为写法(兼容ie/ff/chrome)
1.添加事件
var addevent = function( obj, type, fn ) { if (obj.addeventlistener) obj.addeventlistener( type, fn, false ); else if (obj.attachevent) { obj["e"+type+fn] = fn; obj.attachevent( "on"+type, function() { obj["e"+type+fn].call(obj, window.event); } ); } };
2.移除事件
var removeevent = function( obj, type, fn ) { if (obj.removeeventlistener) obj.removeeventlistener( type, fn, false ); else if (obj.detachevent) { obj.detachevent( "on" +type, obj["e"+type+fn] ); obj["e"+type+fn] = null; } };
3.阻止事件(包括冒泡和默认行为)
var stopevent = function(e){ e = e || window.event; if(e.preventdefault) { e.preventdefault(); e.stoppropagation(); }else{ e.returnvalue = false; e.cancelbubble = true; } },
仅阻止事件冒泡
var stoppropagation = function(e) { e = e || window.event; if (!+"\v1′) { e.cancelbubble = true; } else { e.stoppropagation(); } }
仅阻止浏览器默认行为
var preventdefault = function(e) { e = e || window.event; if(e.preventdefault) { e.preventdefault(); }else{ e.returnvalue = false; } }
4.取得事件源对象
var geteventtarget = function(e){ e = e || window.event; var target = event.srcelement ? event.srcelement : event.target; return target; }
附:绑定onpropertychange事件
onpropertychange,它在一个元素的属性发生变化的时候触发,一般用在表单元素中捕获其value值改变,它比onchange事件更实时捕获它的改变,不过为微软私有事件。ff大致和它相似的有oninput事件,不过它只针对textfield与textarea的value属性。safari,firefox,chrome与 opera都支持此事件。
var addpropertychangeevent = function (obj,fn) { if(window.activexobject){ obj.onpropertychange = fn; }else{ obj.addeventlistener("input",fn,false); } }
如对本文有疑问, 点击进行留言回复!!
轻松解决 org.apache.taglibs.standard.tlv.JstlCoreTLV 困惑
vert实践五——Json?Protocol Buffer?FlatBuffers?
[基于tensorflow的人脸检测] 基于神经网络的人脸检测8——验证训练好的神经网络
selenium + ajax抓取英雄联盟全部英雄的详细信息及多线程保存全部皮肤图片到本地
网友评论