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);}意义作用以及运行流程.
麻烦各位大师指点一下.

解决方案 »

  1.   

    http://www.cnblogs.com/sweting/archive/2009/12/21/1629204.html
    EX.removeEvent.call(document,'click',hide);}相当于document.removeEvent('click',hide)document原本没removeEvent这个方法,通过call,就可以继承使用EX.removeEvent
      

  2.   

    EX.removeEvent.call(document,'click',hide);相当于调用
    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事件
      

  3.   


    setTimeout()
    在这里又起什么作用呢?延时响应?
      

  4.   

    你的这个setTimeout 因为没写时间参数 在这没起什么作用 就是执行了一下里边的函数罢了
    setTimeout(函数Fun,时间s) 每隔s时间调用一次函数Fun
      

  5.   

    希望各位大师理解,我没有太多的分给,如果你们来江西,南昌时,请通知我,我一定会请你们吃饭,带你们玩玩,以表示我的谢意.真的很感谢你们对我的帮助和支持,也感谢CSDN所有的工作人员为我们提供这么好的交流平台.