var EX = {
addEvent:function(k,v){
var me = this;
if (me.addEventListener)
me.addEventListener(k, v, false);
else if(me.attachEvent)
me.attachEvent("on" + k, v);
else
me["on" + k] = v;
},
removeEvent:function(k,v){
var me = this;
if (me.removeEventListener)
me.removeEventListener(k, v, false);
else if (me.detachEvent)
me.detachEvent("on" + k, v);
else
me["on" + k] = null;
},
getEvent: function(event){
return event ? event : window.event;
},
stop:function(evt){
evt = evt || window.event;
evt.stopPropagation?evt.stopPropagation():evt.cancelBubble=true;
}
};function ShowPalette(event){
var o = document.getElementById("Palette"); event = EX.getEvent(event);
o.style.display = "block";setTimeout(function(){EX.addEvent.call(document,'click',hide);});
} function hide(){
var o = document.getElementById('pop');
o.style.display = "none";
EX.removeEvent.call(document,'click',hide);}
请问其中:
setTimeout(function(){EX.addEvent.call(document,'click',hide);});
与
EX.removeEvent.call(document,'click',hide);}意义作用以及运行流程.
麻烦各位大师指点一下.
addEvent:function(k,v){
var me = this;
if (me.addEventListener)
me.addEventListener(k, v, false);
else if(me.attachEvent)
me.attachEvent("on" + k, v);
else
me["on" + k] = v;
},
removeEvent:function(k,v){
var me = this;
if (me.removeEventListener)
me.removeEventListener(k, v, false);
else if (me.detachEvent)
me.detachEvent("on" + k, v);
else
me["on" + k] = null;
},
getEvent: function(event){
return event ? event : window.event;
},
stop:function(evt){
evt = evt || window.event;
evt.stopPropagation?evt.stopPropagation():evt.cancelBubble=true;
}
};function ShowPalette(event){
var o = document.getElementById("Palette"); event = EX.getEvent(event);
o.style.display = "block";setTimeout(function(){EX.addEvent.call(document,'click',hide);});
} function hide(){
var o = document.getElementById('pop');
o.style.display = "none";
EX.removeEvent.call(document,'click',hide);}
请问其中:
setTimeout(function(){EX.addEvent.call(document,'click',hide);});
与
EX.removeEvent.call(document,'click',hide);}意义作用以及运行流程.
麻烦各位大师指点一下.
EX.removeEvent.call(document,'click',hide);}相当于document.removeEvent('click',hide)document原本没removeEvent这个方法,通过call,就可以继承使用EX.removeEvent
function removeEvent(k, v)
{ // k为'click' v为'hide'
var me = this;// 此时这个this指代的是document 而不再是EX
if (me.removeEventListener)
me.removeEventListener(k, v, false);
else if (me.detachEvent)
me.detachEvent("on" + k, v);
else
me["on" + k] = null;
}简单的说明下:
setTimeout(function(){EX.addEvent.call(document,'click',hide);});
} 这句话的意思是给document添加onclick事件 事件函数为hide() 点击document 就会触发hide函数 隐藏掉pop元素 最后再移除document的onlick事件
setTimeout()
在这里又起什么作用呢?延时响应?
setTimeout(函数Fun,时间s) 每隔s时间调用一次函数Fun