百度空间 | 百度首页 
 
查看文章
 
addEvent和removeEvent
2008-12-22 13:56

function addEvent(element,type,handler)
{
   if(!handler.$$guid)
   {
handler.$$guid = addEvent.guid++;
   }
   if(!element.events)
   {
element.events={};
   }
   var handlers = element.events[type];
   if(!handlers)
   {
handlers = element.events[type]={};
   if(element["on"+type])
   {
   handlers[0] = element["on"+type];
   }
   }
   handlers[handler.$$guid] = handler;
   element["on"+type] = handleEvent;
};
addEvent.guid = 1;
function removeEvent(element,type,handler)
{
if(element.events&&element.events[type])
{
   delete element.events[type][handler.$$guid];
}
};
function handleEvent(event)
{
var returnValue = true;
event = event||fixEvent(window.event);
var handlers = this.events[event.type];
for(var i in handlers)
{
   this.$$handleEvent = handlers[i];
   if(this.$$handleEvent(event)===false)
   {
    returnValue = false;
   }
}
return returnValue;
};

function fixEvent(event)
{
event.preventDefault = fixEvent.preventDefault;
event.stopPropagation = fixEvent.stopPropagation;
return event;
};

fixEvent.preventDefault = function()
{
this.returnValue = false;
};

fixEvent.stopPropagation = function()
{
this.cancelBubble = true;
};


类别:web前端开发一些常用到的知识 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu