function bind(curEle, eventType, eventFn) {
if ("addEventListener" in document) {
curEle.addEventListener(eventType, eventFn, false)
return;
}
var tempFn = function () {
eventFn.call(curEle);
}
tempFn.photo = eventFn;
if (!curEle["myBind_" + eventType]) {
curEle["myBind_" + eventType] = []
}
var ary = curEle["myBind_" + eventType]
for (var i = 0; i < ary.length; i++) {
var cur = ary[i];
if (cur.photo === eventFn) {
return;
}
}
ary.push(tempFn)
curEle.attachEvent("on" + eventType, tempFn)
}
function unbind(curEle, eventType, eventFn) {
if ("removeEventListener" in document) {
curEle.removeEventListener(eventType, eventFn, false)
return;
}
var ary = curEle["myBind_" + eventType];
for (var i = 0; i < ary.length; i++) {
if (ary[i].photo === eventFn) {
ary.splice(i, 1);
curEle.detachEvent("on" + eventType, eventFn);
break;
}
}
}
function on(curEle, eventType, eventFn) {
if (!curEle["myEvent" + eventType]) {
curEle["myEvent" + eventType] = [];
}
var ary = curEle["myEvent"]
for (var i = 0; i < ary.length; i++) {
var cur = ary[i];
if (cur === eventFn) {
return;
}
}
ary.push(eventFn)
bind(curEle, eventType, run);
}
function off(curEle, eventType, eventFn) {
var ary = curEle["myEvent" + eventType]
for (var i = 0; i < ary.length; i++) {
var cur = ary[i]
if (cur === eventFn) {
ary[i] = null;
break;
}
}
}
function run(event) {
var e = event || window.event;
var flag = e.target ? true : false;
if (!flag) {
e.target = e.srcElement;
e.pageX = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)
e.pageY = event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)
e.preventDefault = function () {
e.returnValue = false;
}
e.stopPropagation = function () {
e.cancelBubble = true;
}
}
var curEle = e.target
var eventType = e.type;
var ary = curEle["myEvent" + eventType];
for (var i = 0; i < ary.length; i++) {
var tempFn = ary[i];
if (typeof tempFn === "function") {
tempFn.call(curEle);
} else {
ary.splice(i, 1)
i--;
}
}
}
console