向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);
    }
};
时间: 2024-10-13 11:53:06

向JS对象添加和删除事件的相关文章

数组练习:各种数组方法的使用&amp;&amp;事件练习:封装兼容性添加、删除事件的函数&amp;&amp;星级评分系统

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-

js 为对象添加和删除属性

对于一个普通的js对象: var obj = { name:"mary", age:21 } 如果我们要对它添加新属性的话可以使用下列方式: obj.address = "北京" //{name: "mary", age: "21", address: "beijing"} 删除属性,需要使用delete方法: delete obj.name //{age: "21", address:

js动态添加和删除标签

html代码 <h1>动态添加和删除标签</h1> <div id="addTagTest"> <table> <thead><tr><th>姓名</th><th>年薪</th><th>操作</th></tr></thead> <tbody id="info"> </tbody>

关于给javascript对象添加、删除、修改对象的属性

以下是自己总结的几种方法,如有不妥,请君批评指正,不胜感激! 利用动态特性 1 function Person(){}; 2 var person = new Person(); 3 person.name = 'yy'; 4 person.gender = 'girl'; 5 console.log(person.name+','+person.gender);//yy,girl 6 delete person.name;//删除属性 7 console.log(person.name);//

js splice 添加、删除、替换数组

splice  添加.删除.替换数组 var a = [1,2,3]; //a.splice(操作位置,删除个数,插入元素 用逗号隔开) a.splice(2,0,'a') //添加 a=[1,2,3,'a'] a.splice(3,1) //删除 a=[1,2,3] a.splice(2,1,'a') //修改 a=[1,2,'a'] 原文地址:https://www.cnblogs.com/sunday123/p/11064824.html

js动态添加、删除html代码

删除例1:function AddOrDelModel(modelId){ var insertText = '<table tag=' + modelId + '><tr><td>' + modelId + '被选中</td></tr></table>', insertEl = document.getElementById("insert"); if(document.getElementById(modelI

使用js页面添加或删除标签

// 添加var container = document.getElementById('divAudio');container.appendChild(audio); // 删除var container = document.getElementById('divAudio'); if (container.firstChild !== null) { console.log('删除audio元素'); document.getElementById('divAudio').remove

添加,删除事件的函数

var EventUtil = {// oElement触发元素.sEvent绑定事件click?或者其他.fnHandler,绑定的函数. addHandler: function (oElement, sEvent, fnHandler) { oElement.addEventListener ? oElement.addEventListener(sEvent, fnHandler, false) : oElement.attachEvent("on" + sEvent, fnH

Js 对象添加属性

var arr = new Array(); arr[0] = jQuery("#data1").val(); var obj = {}; obj.y='abc'; arr.push(obj);