导航:首页 > 编程语言 > 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相关的资料

热点内容
破锁屏密码方法 浏览:835
股票数据放哪里 浏览:576
m格式库文件 浏览:279
天际通数据服务怎么开票 浏览:430
写小说发哪个网站比较好 浏览:244
小米电视3蓝牙文件路径 浏览:111
shell读取文件值 浏览:909
文件夹路径栏消失 浏览:795
律师哪些业务不能代替大数据 浏览:952
lol哪些文件可以删除 浏览:701
汇编程序中del是什么意思 浏览:183
幼儿园免费网站模板下载 浏览:210
w619线刷教程 浏览:759
怎么培养编程思想 浏览:697
手机捆绑app的软件怎么卸载 浏览:32
vb编程器有什么用 浏览:999
excel如何分列数据与文字 浏览:884
512网络病毒 浏览:994
java调用google地图api接口 浏览:726
文件管理图片小窗 浏览:599

友情链接