首页 > 代码库 > 向JS对象添加和删除事件
向JS对象添加和删除事件
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个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。