向JS對象添加和刪除事件

來源:互聯網
上載者:User

標籤:and   god   ret   dev   random   event   add   not   value   

this.removeEventListener = function (obj, ename, func) {    var store = obj[this.addEventListener.pre + ename];    if (!store) {        return;    }    var i = store.indexOf(func);    if (i < 0) {        return;    }    obj[this.addEventListener.pre + ename].splice(i, 1);};this.addEventListener = function (obj, enames) {    if (arguments.length < 2) {        return;    }    if (!this.addEventListener.pre) {        this.addEventListener.pre = "god_" + Math.random() * Number.MAX_VALUE;    }    if (typeof arguments[1] == "string") {        var ename = arguments[1];        var fullname = "on" + ename;        if (!(fullname in obj)) {            var store = this.addEventListener.pre + ename;            if (!obj[store]) {                obj[store] = [];            }            Object.defineProperty(obj, fullname, {                set: function (v) {                    obj[store].push(v);                }            });            var notice = ename === "notice" ? "notice" : "notice" + ename;            obj[notice] = function () {                for (var i = 0; i < obj[store].length; i++) {                    try {                        obj[store][i].apply(obj, arguments);                    } catch (e) {                        console.log(e.message);                    }                }            };        }    }    if (typeof arguments[2] === "string") {        var narguments = [obj];        for (var i = 2; i < arguments.length; i++) {            narguments.push(arguments[i]);        }        this.addEventListener.apply(this, narguments);    }};

 

向JS對象添加和刪除事件

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.