当前位置:首页 > 日记 > 正文

Javascript事件委托方法绑定详细解决方案

Javascript事件委托方法绑定详细解决方案
js事件绑定

事件绑定,这里泡原理,从点击元素递归通信事件的父元素,这样做是为大量的处理单元的好处,每个元素不是结合的活动,只有在它们的父元素绑定一次,提高性能。另一个好处是,你可以处理DOM元素的动态,并直接绑定的方式是不。

我总是用jQuery的方法来做这样的事情。几天前,我看到了公司项目的源代码来实现这种方式。我们需要仔细研究并与你分享。

功能bindaction美元(DOM,事件监听器){
在这里# DOM绑定元素,如document.body
#事件绑定事件,如单击
#听众是一个事件对象被执行
$ AddEvent(DOM、事件、函数(e){)
#这里一个E事件
对SRC元#采集点击
Var e = e window.event ||,
SRC = e.target e.srcelement | |,
行动,
returnval;

#泡沫模拟的方式,第一src.parentnode src,然后,然后src.parentnode.parent.node
DOM元素等于# DOM元素绑定事件,阻止泡沫
当(SRC)!= DOM){
attr动作属性#周期获取DOM元素,
行动= src.getattribute('attr-action);
如果属性行为性质#现有DOM元素,和事件对象的属性值的函数,来执行这个功能
的#功能属性属性动作事件,当前的DOM元素,其价值是通过执行
如果(侦听器{动作}){
returnval =听众{action}({
钢骨混凝土,
E:E,
行动:行动
});
如果在函数返回FALSE以上#,阻止泡沫
如果(returnval = false){
打破;
}
}
父节点#检索DOM元素
SRC = src.parentnode;
}
});
};

函数AddEvent美元(obj,型,手柄){
如果(obj类型| | | |!!!手柄){
返回;
}
#事件绑定到多个对象,递归调用
如果(obj instanceof Array){
对于(var i = 0,L = obj.length;i < L;i++){
$ AddEvent(obj {我}、类型、处理);
}
返回;
}
#绑定多个事件,递归调用
如果(类型是数组){
对于(var i = 0,L = type.length;i < L;i++){
$ AddEvent(obj类型{我},处理);
}
返回;
}
#下这部分是用来记录当前页面绑定事件的数量、事件和相关信息
#和对象绑定事件ID
窗口。__allhandlers =窗口。__allhandlers | | { };
窗口。__hcounter =窗口。__hcounter | | 0;
功能sethandler(obj、类型、处理、包装){
obj。__hids = obj。__hids | | { };
VaR HID = H + + + __hcounter窗口;
__hids.push(HID)的信息;
窗口。__allhandlers {藏} = { {
类型:类型,
汉德勒:处理者,
包装:包装
}
}
#的应用里面是修改绑定事件执行的功能
在这#低版本的IE真正发挥作用
功能createdelegate(处理、上下文){
返回函数(){
返回handle.apply(语境参数);
};
}

#绑定事件,事件绑定信息记录
如果(窗口。addEventListener){
VaR的包装= createdelegate(手柄,obj);
SetHandler(obj、类型、处理、包装)
Obj.addEventListener(类型、包装、虚假);
}
如果(窗口。attachevent){
VaR的包装= createdelegate(手柄,obj);
SetHandler(obj、类型、处理、包装)
obj.attachevent(+型,包装);
}
{其他
obj { +型} =处理;
}
};

看一个例子:

当你点击前三名,类名会突然转向,和别人不触发事件。
#出去{宽度:500px;背景颜色:# CDE }
#内{背景颜色:# ABCDEF;保证金:0;padding: 0;宽度:400px;}
Ul{background-color: pink; margin: 0; padding: 0; width: 400px;}
李:398px {宽度;高度:20px;border: 1px solid黑;保证金:15px 0px;padding: 0px;};}

DIV #出来> div #内:
class=小冰期属性的行动=setwhat
class=小冰期属性的行动=setwhat
class=小冰期属性的行动=setwhat



Ul:

class=小冰期属性的行动=setwhat
class=小冰期属性的行动=setwhat
class=小冰期属性的行动=setwhat



侦听器= {
setwhat:功能(选择){
警报(选择。SRC方法);
返回false;
},
};
在window.onload =函数(){ $ bindaction(document.getelementbyid(out),{一},'mouseover,听众);}
结果如下:
再次查看事件绑定,与我们绑定的事件相一致:
以上是本文的全部内容,希望大家能喜欢。

相关文章

Javascript中的一些()方法使用了详细的解决

Javascript中的一些()方法使用了详细的解决

解决方案,方法,使用了,详细,电脑软件,Javascript数组()方法测试数组中的元素是否通过提供的功能进行测试。 语法 array.some(回调{,这个对象}); 下面是参数的详细信息: 回调函数:该函数用于测试每个元素。 目的:使用对象为执行回调。 返回值: 如果对某…

教你快速使用excel2010重排窗口exc

教你快速使用excel2010重排窗口exc

教程,重排,教你,窗口,快速,在我们日常的数据处理中,在不同的Excel表格之间进行数据引用是很常见的,例如,工会工作人员的信息,从其他人的基本信息中提取基本信息,需要跨表参考。 在记忆的代码编写,作者根据Unicode编码,你需要从基本表文件参考对应…

ps层混合技术的图解法

ps层混合技术的图解法

混合,图解法,技术,电脑软件,ps,在PS图象处理软件,该层混合模式可以结合两层颜色值加在一起,创造出大量的效果。下面为大家找出PS层混合技术方法的小编辑,一起看 通过利用层间混合的各种方法,两个不同的层完美地结合在一起,创造出惊人的效果。 …

jQuery插件animateslide使多点滑滑

jQuery插件animateslide使多点滑滑

多点,插件,滑梯,电脑软件,jQuery,国内领先的冷却效果从图片全屏幻灯片的动画效果,下面提供了一个完美兼容jQuery动画:新的jQuery多点滑滑的全屏幕动画animateslide(原代码)。 直接在代码上,HTML、CSS和jQuery代码拷贝可以显示在页面上。 HTML…

一个快乐的QQ签名,快乐的个性签名

一个快乐的QQ签名,快乐的个性签名

快乐,个性签名,电脑软件,QQ,1、爱情总是像一场旅行,总会有一个未知的惊喜等着你。 2、在背包的回来的路上,看到很多人,听到很多故事,看旅行的风景,在这条路上,慢慢学会长大,时间的流动,已经成为一个美丽的点缀,命途看天,看雪,静静地,风景是绝对的没有一…

AICS2绘制卡通人物在一个可爱的跑

AICS2绘制卡通人物在一个可爱的跑

绘制,卡丁车,跑跑,卡通人物,可爱,本教程介绍一个朋友AI CS2在可爱的跑跑卡丁画卡通人物。创建教程并不难。制作的角色非常漂亮,建议你最喜欢的朋友一起学习。 本教程是关于学习人工智能的朋友,AI CS2在可爱的跑跑卡丁画卡通人物。学习和学习…

美女皮肤的PS细节

美女皮肤的PS细节

细节,美女,电脑软件,PS,PS的磨削效果是有目共睹的。让我们赶紧学吧 教你用ps给大家详细介绍皮肤研磨技巧给大家,教程很简单实用哦!!!学习提高你的P技巧!…

通过日期掩码将日期转换成字符串的

通过日期掩码将日期转换成字符串的

日期,掩码,字符串,方法,转换成,本文阐述了如何通过Javascript将日期字符串供你参考你date-mask.share。具体实现的方法如下: 无功monthnames = {一月 无功daynames = {星期日 星期五 无功shortmths = {简 SEP 无功shortdays = {太阳 无功stringtod…

画家复制超真实的外国气质模型

画家复制超真实的外国气质模型

模型,画家,气质,外国,真实,本教程是介绍利用画家临摹外国超真实气质的女性模特,虽然是临摹,但能画出这样逼真的效果,需要一些耐心和技术,课程难度适中,适合资深画家,推荐给朋友,爱朋友可以跟进学习。 本教程是介绍利用画家临摹外国超真实气质的女…

会话可能会导致PHP中的并发问题。

会话可能会导致PHP中的并发问题。

并发,可能会,电脑软件,PHP,在开发Web应用程序,人们经常使用的会话存储数据。但是有些人可能不知道,在PHP中,会话使用不当可能会导致并发问题。基尚R,在plus91技术高级工程师,为印度医疗行业提供软件解决方案,阐述了个人博客的问题。 如果同一个…

揭露Q币Q币/QQ号被盗QQ安全的真相

揭露Q币Q币/QQ号被盗QQ安全的真相

被盗,揭露,真相,电脑软件,QQ,也许越来越多的人最近发现他们的QQ号经常不正常,有的甚至被盗,这是因为你的号码被黑客访问过!下面将揭露Q币Q币号被盗的真相,并教你如何做防护措施。 首先,有QQ币,游戏币。他们将被转换成游戏里面的硬币,然后用插件双…

对tolocaledatestring使用Javascript()方法

对tolocaledatestring使用Javascript()方法

方法,简介,电脑软件,tolocaledatestring,Javascript,Javascript Date.toLocaleDateString的日期()方法将一个字符串并返回部分的日期使用的操作系统的语言环境协议。 语法 Date.toLocaleDateString() 下面是参数的详细信息: Na 返回值: 返回使用操…