首页 >

javascript 处理事件绑定的一些兼容写法【javascript】

web前端|js教程javascript 处理事件绑定的一些兼容写法【javascript】
javascript,事件绑定
web前端-js教程
绑定事件
漂亮的html个人页面源码,ubuntu18 皮肤,水果里的爬虫,php 5.4.22,Seo138lzw
 
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]();
} );
}
};

另一个实现

java门店销售系统源码,vscode tab 跳出,ubuntu 旧电脑,tomcat系统入侵,sqlite新建索引,服务器a记录,小说插件怎么使用方法,阿里前端样式框架,网络爬虫技术研究现状,php减减,如何优化seo网站链接,linux网站模板,qq在线客服网页版,css模板贴吧,网站维护页面 html,织梦内容管理系统登陆,手指滑动退出程序插件lzw
 
var addEvent = (function () {
if (document.addEventListener) {
return function (el, type, fn) {
el.addEventListener(type, fn, false);
};
} else {
return function (el, type, fn) {
el.attachEvent('on' + type, function () {
return fn.call(el, window.event);
});
}
}
})();

绑定onpropertychange事件

公告管理模块源码,vscode打字冒火插件,ubuntu 小众软件,tomcat mac沙箱,SQLite新建不起文件,浏览器插件检测爬虫数量,php 直接运行,靠谱seo加盟,淘宝客网站固定带宽2m,js 获取网页地址,网站关闭模板lzw
onpropertychange是微软制造的一个事件,它在一个元素的属性发生变化的时候触发,常见的有文本的长度改变,样长改变等,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);
}
}

移除事件

 
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;
}
};

加载事件

 
var loadEvent = function(fn) {
var oldonload = window.onload;
if (typeof window.onload != 'function') {
window.onload = fn;
}else {
window.onload = function() {
oldonload();
fn();
}
}
}

阻止事件

 
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();
}
}

取得事件源对象

相当于Prototype.js框架的Event.element(e)

 
var getEvent = function(e){
e = e || window.event;
var target = event.srcElement ? event.srcElement : event.target;
return target
}

或者这个功能更强大,我在开发datagrid时开发出来的,详细用法见《一步步教你实现表格排序(第二部分)》。

 
var getEvent = function(e) {
var e = e || window.event;
if (!e) {
var c = this.getEvent.caller;
while (c) {
e = c.arguments[0];
if (e && (Event == e.constructor || MouseEvent == e.constructor)) {
break;
}
c = c.caller;
}
}
var target = e.srcElement ? e.srcElement : e.target,
currentN = target.nodeName.toLowerCase(),
parentN = target.parentNode.nodeName.toLowerCase(),
grandN = target.parentNode.parentNode.nodeName.toLowerCase();
return [e,target,currentN,parentN,grandN];
}

最后附上DOM3.0事件的一览表






























































































































































































































typeBubbling phaseCancelableTarget node typesDOM interface
DOMActivateYesYesElementUIEvent
DOMFocusInYesNoElementUIEvent
DOMFocusOutYesNoElementUIEvent
focusNoNoElementUIEvent
blurNoNoElementUIEvent
textInputYesYesElementTextEvent
clickYesYesElementMouseEvent
dblclickYesYesElementMouseEvent
mousedownYesYesElementMouseEvent
mouseupYesYesElementMouseEvent
mouseoverYesYesElementMouseEvent
mousemoveYesYesElementMouseEvent
mouseoutYesYesElementMouseEvent
keydownYesYesElementKeyboardEvent
keyupYesYesElementKeyboardEvent
mousemultiwheelYesYesDocument, ElementMouseMultiWheelEvent
mousewheelYesYesDocument, ElementMouseWheelEvent
DOMSubtreeModifiedYesNoDocument, DocumentFragment, Element, AttrMutationEvent
DOMNodeInsertedYesNoElement, Attr, Text, Comment, CDATASection, DocumentType, EntityReference, ProcessingInstructionMutationEvent
DOMNodeRemovedYesNoElement, Attr, Text, Comment, CDATASection, DocumentType, EntityReference, ProcessingInstructionMutationEvent
DOMNodeRemovedFromDocumentNoNoElement, Attr, Text, Comment, CDATASection, DocumentType, EntityReference, ProcessingInstructionMutationEvent
DOMNodeInsertedIntoDocumentNoNoElement, Attr, Text, Comment, CDATASection, DocumentType, EntityReference, ProcessingInstructionMutationEvent
DOMAttrModifiedYesNoElementMutationEvent
DOMCharacterDataModifiedYesNoText, Comment, CDATASection, ProcessingInstructionMutationEvent
DOMElementNameChangedYesNoElementMutationNameEvent
DOMAttributeNameChangedYesNoElementMutationNameEvent
loadNoNoDocument, ElementEvent
unloadNoNoDocument, ElementEvent
abortYesNoElementEvent
errorYesNoElementEvent
selectYesNoElementEvent
changeYesNoElementEvent
submitYesYesElementEvent
resetYesYesElementEvent
resizeYesNoDocument, ElementUIEvent
scrollYesNoDocument, ElementUIEvent
作者:Ruby’s Louvre


javascript 处理事件绑定的一些兼容写法【javascript】
  • 浅谈JavaScript之事件绑定【javascript】
  • 浅谈JavaScript之事件绑定【javascript】 | 浅谈JavaScript之事件绑定【javascript】 ...

    javascript 处理事件绑定的一些兼容写法【javascript】
  • Javascript函数加壳多用于事件绑定_js面向对象
  • Javascript函数加壳多用于事件绑定_js面向对象 | Javascript函数加壳多用于事件绑定_js面向对象 ...

    javascript 处理事件绑定的一些兼容写法【javascript】
  • jQuery实现按钮只点击一次后就取消点击事件绑定办法【jquery】
  • jQuery实现按钮只点击一次后就取消点击事件绑定办法【jquery】 | jQuery实现按钮只点击一次后就取消点击事件绑定办法【jquery】 ...