针对上一篇提到的DOM2级存在的兼容问题,这里先说一下this的问题。
/*
bind:处理DOM2级事件绑定的兼容性问题(绑定方法)
@parameter:
curEle->要绑定事件的元素
evenType->要绑定的事件类型("click","mouseover")
evenFn->要绑定的方法
*/
function bind(curEle,evenType,evenFn){
if('addEventListener' in document){
curEle.addEventListener(evenType,evenFn,false);
return;
}
//给evenFn化妆 并且把化妆前的照片贴在自己对应的脑门上
var tempFn = function(){
evenFn.call(curEle)
}
tempFn.photo = evenFn;
//首先判断自定义属性之前是否存在,不存在的话创建一个,由于要存储多个化妆后的结果,所以我们让其值是一个数组
if(!curEle["mybind"+evenType]){//根据不同的事件类型是不同的数组
curEle["mybind"+evenType] = [];
}
curEle["mybind"+evenType].push(tempFn);
curEle.attachEvent("on"+evenType,tempFn);
//这里的开始想法是改变this的指向,把this不指向window
/*
box.attachEvent("onclick",function(){
fn1.call(box)
})
这样虽然解决了this的问题,但是又抛出了一个新的问题,不知道该如何删除了(我们不知道匿名函数是谁)
var tempFn = function(){
fn1.call(box)
}
box.attachEvent("onclick",tempFn);
box.detachEvent("onclick",tempFn);
*/
}
function unbind(curEle,evenType,evenFn){
if('removeEventListener' in document){
curEle.removeEventListener(evenType,evenFn,false);
return;
}
//拿evenFn到curEle["myBind"]这里找化妆后的结果,找到之后再事件池中把化妆后的结果移除事件池
var ary = curEle['myBind'+evenType];
for(var i = 0;i<ary.length;i++){
if(ary[i].photo===evenFn){
curEle.detachEvent("on"+evenType,ary[i]);
break;
}
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# js
# DOM2
# this
# JavaScript call apply使用 JavaScript对象的方法绑定到DOM事件后th
# js学习总结之DOM2兼容处理重复问题的解决方法
# js学习总结之DOM2兼容处理顺序问题的解决方法
# javascript 兼容所有浏览器的DOM扩展功能
# Dom操作之兼容技巧分享
# Dom与浏览器兼容性说明
# DOM Scripting中的图片切换[兼容Firefox]
# 前端开发部分总结[兼容性、DOM操作、跨域等](持续更新)
# javascript firefox兼容ie的dom方法脚本
# javascript下有关dom以及xml节点访问兼容问题
# 绑定
# 是一个
# 多个
# 不存在
# 自定义
# 上一篇
# 创建一个
# 抛出
# 先说
# 知道该
# 让其
# 大家多多
# 移除
# 是否存在
# 池中
# 解决了
# gt
# evenType
# curEle
# parameter
相关文章:
网站制作员失业,怎样查看自己网站的注册者?
如何正确选择百度移动适配建站域名?
制作销售网站教学视频,销售网站有哪些?
如何快速搭建支持数据库操作的智能建站平台?
武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?
如何配置IIS站点权限与局域网访问?
IOS倒计时设置UIButton标题title的抖动问题
,石家庄四十八中学官网?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
如何规划企业建站流程的关键步骤?
整蛊网站制作软件,手机不停的收到各种网站的验证码短信,是手机病毒还是人为恶搞?有这种手机病毒吗?
如何安全更换建站之星模板并保留数据?
如何在腾讯云免费申请建站?
常州自助建站工具推荐:低成本搭建与模板选择技巧
开心动漫网站制作软件下载,十分开心动画为何停播?
C++ static_cast和dynamic_cast区别_C++静态转换与动态类型安全转换
如何设置并定期更换建站之星安全管理员密码?
网站专业制作公司,网站编辑是做什么的?好做吗?工作前景如何?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
零基础网站服务器架设实战:轻量应用与域名解析配置指南
学校免费自助建站系统:智能生成+拖拽设计+多端适配
沈阳制作网站公司排名,沈阳装饰协会官方网站?
常州企业网站制作公司,全国继续教育网怎么登录?
c++怎么编写动态链接库dll_c++ __declspec(dllexport)导出与调用【方法】
5种Android数据存储方式汇总
建站主机功能解析:服务器选择与快速搭建指南
免费视频制作网站,更新又快又好的免费电影网站?
制作网站的公司有哪些,做一个公司网站要多少钱?
如何在VPS电脑上快速搭建网站?
如何在局域网内绑定自建网站域名?
如何高效利用200m空间完成建站?
宁波自助建站系统如何快速打造专业企业网站?
定制建站如何定义?其核心优势是什么?
免费制作小说封面的网站有哪些,怎么接网站批量的封面单?
香港服务器部署网站为何提示未备案?
javascript基本数据类型及类型检测常用方法小结
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
,柠檬视频怎样兑换vip?
制作网站的基本流程,设计网站的软件是什么?
招商网站制作流程,网站招商广告语?
如何快速搭建个人网站并优化SEO?
如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
定制建站流程步骤详解:一站式方案设计与开发指南
电商网站制作多少钱一个,电子商务公司的网站制作费用计入什么科目?
如何快速生成橙子建站落地页链接?
北京的网站制作公司有哪些,哪个视频网站最好?
如何在IIS中新建站点并解决端口绑定冲突?
建站之星后台搭建步骤解析:模板选择与产品管理实操指南
*请认真填写需求信息,我们会在24小时内与您取得联系。