From Javascrpt is dancing
/*
* @author Shanpeng
* @copyright: Shanpeng,All rights reserved.
* @website:http://www.ilovejs.net
* @e-mail:supersha@foxmail/shanpeng@taobao.com/supershafeng@gmail.com
* @QQ:770104121
* @my word:Here,believe what browsers display,and believe yourself
*/
////////////////////// Javascript's code below ///////////////////////
/*
* @type:event type.
* @fn:handle function,argument[0] is target Element,"this" reference to @elem.
* @elem:the aim DOM Element to add an event(elem || id).
* @subTag: sub DOM Elements's tagName.
*/
var delegate = (function(){
var $ = function(id){
return typeof id === "string" ? document.getElementById(id) : id;
}
var addListener = function(el, type, fn){
if (el.addEventListener) {
el.addEventListener(type, fn, false);
}
else {
el.attachEvent("on" + type, function(e){
fn.call(el, e);
});
}
return false;
}
return function(type, fn, elem, subTag){
addListener($(elem), type, function(e){
var e = e || window.event;
var el = e.srcElement || e.target;
var nodeName = el.nodeName.toLowerCase();
if (nodeName === subTag) {
fn.call(elem, el);
//if subTag is a "A" element,preventDefault;
if (nodeName === "a") {
try {
e.preventDefault();
}
catch (o) {
e.returnValue = false;
}
}
}
});
}
})();