⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 events.lib.js

📁 asp的bbs程序
💻 JS
字号:
/*
  By Hangring
  #2007.12.25#
  ---
  use list:
  > global.lib.js
  ---
  事件绑定类
  ---
  对不同对象注册相同的方法,在IE中可能产生异常,
  可由Function.prototype.Rebuild解决(X)
*/

$Defined('Events');
var Events = {};

Events.AttachEvent = function (obj, eventName, func, useCapture, _window) {
    obj = $(obj);if (!obj) return;
    useCapture = useCapture ? true : false;
    eventName = eventName.toLowerCase();
    if (obj.addEventListener) {
        obj.addEventListener(eventName, func, useCapture);
    }
    //else if (obj.attachEvent) {
    //    obj.attachEvent('on' + eventName, func);
    //}
    else {
        var E = this;
        this._AttachEvent(obj, eventName, func);
        obj['on' + eventName] = function (e) {E._FireEvent(obj, eventName, e, _window);};
    }
};

Events.RemoveEvent = function (obj, eventName, func, useCapture) {
    obj = $(obj);if (!obj) return;
    useCapture = useCapture ? true : false;
    eventName = eventName.toLowerCase();
    if (obj.removeEventListener) {
        obj.removeEventListener(eventName, func, useCapture);
    }
    //else if (obj.detachEvent) {
    //    obj.detachEvent('on' + eventName, func);
    //}
    else {
        if (obj.events && obj.events[eventName]) {
            var evts = obj.events[eventName];
            for (var i = 0, len = evts.length; i < len; i++) {
                if (evts[i] && func && evts[i] === func) {
                    evts.splice(i, 1);
                    break;
                }
            }
        }
    }
};

Events._AttachEvent = function (obj, eventName, func) {
    eventName = eventName.toLowerCase();
    if (! obj.events) obj.events = {};
    if (! obj.events[eventName]) obj.events[eventName] = [];
    var evts = obj.events[eventName];
    evts[evts.length] = func;
};

Events._FireEvent = function (obj, eventName, e, _window) {
    e = _window ? _window.event : $E(e);
    eventName = eventName.toLowerCase();
    if (!obj || !obj.events || !obj.events[eventName]) return;
    var evts = obj.events[eventName];
    for (var i = 0, len = evts.length; i < len; i++)
        evts[i] && evts[i].call(obj, e, obj);
};

Events.CancelBubble = function (e) {
    if (!e) return;
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
};

Events.CancelEvent = function (e) {
    if (!e) return;
    e.returnValue = false;
    if (e.preventDefault) e.preventDefault();
};

Events.CancelAll = function (e) {
    this.CancelBubble(e);
    this.CancelEvent(e);
};

Events.Button = function (e) {
    if (e.button != undefined) return e.button;
    else if (e.which != undefined) return e.which;
};

// 预先执行程序
Events.OnLoadTasks = [];
Events.AttachEvent(window, 'load', function () {
    for (var i = 0; i < Events.OnLoadTasks.length; i++) {
        if (typeof Events.OnLoadTasks[i] === 'function')
            Events.OnLoadTasks[i]();
    }
});

/*

// 添加监听
Events.AttachEvent($('abc'), 'mousedown', _md1);
Events.AttachEvent($('abc'), 'mousedown', _md2);

function _md1 (e, th) {
    th = th || this; // (or) th = this;
    alert('aaa' + e);
    Events.CancelBubble(e);
}
function _md2 (e, th) {
    th = th || this; // (or) th = this;
    alert('bbb' + e);
    Events.CancelBubble(e);
}

// 移除监听
Events.RemoveEvent($('abc'), 'mousedown', _md1);
Events.RemoveEvent($('abc'), 'mousedown', _md2);

*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -