导航:首页 > 编程语言 > jsattach

jsattach

发布时间:2023-09-22 05:01:05

javascript中使用attachEvent添加了匿名函数事件,如何用detachEvent移除这个事件

做这种东西,建议你用js库去做,
或者你不想用jQuery这种体积庞大的库(也不算大,最新版本80多k,可以压缩到50多k)
可以用CJL这种小库,对原生的js做了些基本的兼容.体积只有6k不到.
再或者你自己封装些常用的兼容,方法.
看下我这个爱墙的拖动怎么样?
http://shirne.com/love
下面是我以前写的拖动插件,不明白的地方随时找我.
//用法$("id1").startDrag($("id2"));
//id1为鼠标启用效果的元素,id2为移动的元素
//例如,有一个div元素,内有一个h2标签作为这个div版块的标题.就可以在h2上启用拖动来移
//动div元素,而在div内的其它地方则不启用拖动
var d=document;
d.addListener=function(e,f,b){
this.attachEvent?this.attachEvent('on'+e,f):this.addEventListener(e,f,b);
}
d.removeListener=function(e,f,b){
this.detachEvent?this.detachEvent('on'+e,f):this.removeEventListener(e,f,b);
}
function $(){
var o=document.getElementById(arguments[0]);
o.addListener=function(e,f,b){
this.attachEvent?this.attachEvent('on'+e,f):this.addEventListener(e,f,b);
}
o.removeListener=function(e,f,b){
this.detachEvent?this.detachEvent('on'+e,f):this.removeEventListener(e,f,b);
}
o.startDrag=function(obj){
var obj=obj?obj:o;
var sx,sy;
o.style.cursor="move";
o.addListener("mousedown",function(e){
e||event;
if(e.button==1||e.button==0){
sx=e.clientX-obj.offsetLeft;sy=e.clientY-obj.offsetTop;
d.addListener("mousemove",move,false);
d.addListener("mouseup",stopDrag,false);
}
},false);

var stopDrag=function(){
d.removeListener("mousemove",move,false);
d.removeListener("mouseup",stopDrag,false);
}
var move=function(e){
e||event;
window.getSelection ? window.getSelection().removeAllRanges() : document.selection.empty();
if(e.preventDefault)e.preventDefault();
with (obj.style){
position="absolute"
left=e.clientX-sx+"px";
top=e.clientY-sy+"px";
}
}
}
return o;
}

要移除事件监听,除了用函数名外,还可以用索引。
如:delete element.events[type][0]
除非你十分确定,否则用索引删除可能会出问题

❷ javascript中总是报错:attachEvent is not defined

window对象的attachEvent方法只在IE浏览器中有效,其它浏览器不支持这个方法,所以报错。

❸ javascript中window.attachevent()和document.attachevent()这两种方法绑定有什么区别,分别在什么时候用

element.attachevent
是指针对什么对象绑定
window一般绑定 onload对象
document可以绑定很多 一般元素的事件都可以绑定
鼠标 键盘事件都可以 该方法只针对ie
w3c是用addEventListener 进行绑定的!

❹ JS如何实现方法监听

监听方法在中的实现如下:
function addEventListener(string eventFlag, function eventFunc, [bool useCapture=false])
eventFlag : 事件名称,如click、mouseover…
eventFunc: 绑定到事件中执行的动作
useCapture: 指定是否绑定在捕获阶段,true为是,false为否,默认为true
在事件监听流中可以使用event.stopPropagation()来阻止事件继续往下流

IE中使用自有的attachEvent函数绑定时间,函数定义如下:
function attachEvent(string eventFlag, function eventFunc)
eventFlag: 事件名称,但要加上on,如onclick、onmouseover…
eventFunc: 绑定到事件中执行的动作
在事件监听流中可以使用window.event.cacenlBubble=false来阻止事件继续往下流
总结:addEventListener(string eventFlag, function eventFunc, [bool useCapture=false]),针对ff,chrome,safari浏览器,false指冒泡阶段,默认为true,指捕获阶段。不过一般我们都用false。
attachEvent(string eventFlag, function eventFunc),针对ie系列、还有opera浏览器,少了事件处理机制的参数,只指定事件类型(别忘了on)和触发哪个函数。

❺ JS通过函数名调用函数

调用方式:
方法调用模式
函数调用模式
构造器调用模式
1:方法调用模式。
/*方法调用模式*/
var myobject={
value:0,
inc:function(){
alert(this.value)
}
}
myobject.inc()

2:函数调用模式
/*函数调用模式*/

var add=function(a,b){
alert(this)//this被绑顶到window
return a+b;
}
var sum=add(3,4);
alert(sum)

3:构造器调用模式
var quo=function(string){
this.status=string;
}
quo.prototype.get_status=function(){
return this.status;
}
var qq=new quo("aaa");
alert(qq.get_status());

4:apply调用模式
/*apply*/
var arr=[10,20];
var sum=add.apply(myobject,arr);
alert(sum);

阅读全文

与jsattach相关的资料

热点内容
网络中常用的传输介质 浏览:518
文件如何使用 浏览:322
同步推密码找回 浏览:865
乐高怎么才能用电脑编程序 浏览:65
本机qq文件为什么找不到 浏览:264
安卓qq空间免升级 浏览:490
linux如何删除模块驱动程序 浏览:193
at89c51c程序 浏览:329
怎么创建word大纲文件 浏览:622
袅袅朗诵文件生成器 浏览:626
1054件文件是多少gb 浏览:371
高州禁养区内能养猪多少头的文件 浏览:927
win8ico文件 浏览:949
仁和数控怎么编程 浏览:381
项目文件夹图片 浏览:87
怎么在东芝电视安装app 浏览:954
plc显示数字怎么编程 浏览:439
如何辨别假网站 浏览:711
宽带用别人的账号密码 浏览:556
新app如何占有市场 浏览:42

友情链接