self.attachevent is not a function的解决方法
注意原因:
window对象的attachEvent方法只在IE浏览器中有效,其它浏览器不支持这个方法,所以报错。
self.attachevent is not a function其实就是以前的代码, 没有做chrome、firefox浏览器兼容导致。
self.attachEvent("onblur",function(){dd.style.display="none"})
上面的代码在chrome浏览器肯定会报错的。
因为chrome浏览器绑定事件不支持attachevent而支持addEventListener。
下面是临时解决方法:
if(!self.addEventListener){ self.attachEvent("onblur",function(){ddd.style.display="none"}) }
但是效果会丢失,这个不报错但效果也没有了。
IE:element.attachEvent(”onclick”, func);。
FF:element.addEventListener(”click”, func, true)。
通用:element.onclick=func。虽然都可以使用onclick事件,但是onclick和上面两种方法的效果是不一样 的,onclick只有执行一个过程,而attachEvent和addEventListener执行的是一个过程列表,也就是多个过程。例 如:element.attachEvent(”onclick”, func1);element.attachEvent(”onclick”, func2)这样func1和func2都会被执行。
建议大家参考这篇文章的方法解决:http://www.jb51.net/article/28637.htm
相关推荐
-
javascript attachEvent绑定多个事件执行顺序问题
常见的绑定事件有直接绑定在页面元素中比如<div id="wrap" onclick="a();"></div>,这个换种方法也就是分离出来写在js代码里如document.getElementById('wrap').onclick = function(){a();},此时如果需要绑定多个方法则直接写在一起即可如document.getElementById('wrap').onclick = function(){a();b();}或&
-
addEventListener和attachEvent二者绑定的执行函数中的this不相同
写 addEventListener 和 attachEvent 区别的博文不少,不过大部分都把重点放置于前者是Firefox chrome,后者只是存在于IE系列中. 最近在写一个事件代理的时候,遇到一个BUG,发现除此外,二者绑定的执行函数中的 this 是不相同的,addEventListener 和 attachEvent函数在运行时候的上下文是不相同的. 用了一个简单的demo来描述这个不同点: 复制代码 代码如下: <html xmlns="http://www.w3.org/
-
attachEvent的使用方法与传递参数[IE|firefox]
比较好的解决办法可以用作用域,比较下下面的变量str在作用域内和作用域外的值 复制代码 代码如下: <input id="button1" type="button" value="按我" /> <script language="javascript"> window.onload=function(){ var obj=document.getElementById("but
-
如何解决attachEvent函数时,this指向被绑定的元素的问题?
使用attachEvent对同一事件进行多次绑定,这是解决事件函数定义冲突的重要方法.但是在IE中,函数内的this指针并没有指向被绑定元素,而是function对象,在应用中,这是很难受的一件事,如果试图用局部变量传送元素,会因为闭包而引起内存泄漏.那么,我们应该如何解决这一难题呢? 我给Function添加了原型方法"bindNode",在这个方法里,根据传送过来的元素,进行全局性存储转换,然后返回经过封装的函数,使用call方法来进行属主转换. test if(!docum
-
javascript attachEvent和addEventListener使用方法
attachEvent方法 按钮onclick addEventListener方法 按钮click 两者使用的原理:可对执行的优先级不一样,下面实例讲解如下: attachEvent方法,为某一事件附加其它的处理事件.(不支持Mozilla系列) addEventListener方法 用于 Mozilla系列 举例: Java代码 复制代码 代码如下: document.getElementById("btn").onclick = method1; document.getElem
-
javascript中attachEvent用法实例分析
本文实例讲述了javascript中attachEvent用法.分享给大家供大家参考.具体分析如下: 一般我们在JS中添加事件,是这样子的 obj.onclick=method 这种绑定事件的方式,兼容主流浏览器,但如果一个元素上添加多次同一事件呢? obj.onclick=method1 obj.onclick=method2 obj.onclick=method3 如果这样写,那么只有最后绑定的事件,这里是method3会被执行,这个时候我们就不能用onclick这样的写法了,主角改登场了,
-
JS在IE和FF下attachEvent,addEventListener学习笔记
对象名.addEventListener("事件名(不带ON)",函数名,true/false);(FF下) 对象名.attachEvent("事件名",函数名);(IE下) 说明: 事件名称,要注意的是"onclick"要改为"click","onblur"要改为"blur",也就是说事件名不要带"on". 函数名,记住不要跟括号最后一个参数是个布尔值,表示该事件的
-
JavaScript通过attachEvent和detachEvent方法处理带参数的函数
无标题文档 var theP; //P标签对象 var show=function(msg){ //直接定义 function show(msg) 效果是一样的 return function(){ alert(msg+" from show()"); if(window.addEventListener){ //FF etc. theP.removeEventListener("click", theP.show11, false); } else{ //IE t
-
浅谈addEventListener和attachEvent的区别
• addEventListener共有3个参数,如下所示: element.addEventListener(type,listener,useCapture); 参数 参数说明 element 要绑定事件的对象,及HTML节点. type 事件名称,注意去掉事件前边的"on",比如"onclick"要写成"click","onmouseover"要写成"mouseover". listener 要绑定的
-
Javascript 的addEventListener()及attachEvent()区别分析
Mozilla中: addEventListener的使用方式: target.addEventListener(type, listener, useCapture); target: 文档节点.document.window 或 XMLHttpRequest. type: 字符串,事件名称,不含"on",比如"click"."mouseover"."keydown"等. listener :实现了 EventListene
随机推荐
- jquery获取所有选中的checkbox实现代码
- SpringMVC 文件上传配置,多文件上传,使用的MultipartFile的实例
- perl操作符详细说明
- python中查找excel某一列的重复数据 剔除之后打印
- 说明你的Javascript技术很烂的五个原因
- PHP+javascript制作带提示的验证码源码分享
- 详解mysql中的静态变量的作用
- Linux下Docker安装配置教程
- javascript基于定时器实现进度条功能实例
- Javascript递归打印Document层次关系实例分析
- JS解决iframe之间通信和自适应高度的问题
- C++流操作之fstream用法介绍
- JS小游戏之仙剑翻牌源码详解
- 浅谈Java读写注册表的方式Preferences与jRegistry
- 模仿iOS版微信的滑动View效果
- 小程序如何构建骨架屏
- 有关ThreadLocal的面试题你真的懂了吗
- Vue自定义指令封装节流函数的方法示例
- Java高级特性之反射机制实例详解
- Mysql将一个表中的某一列数据复制到另一个表中某一列里的方法