JavaScript中事件的追加與移除

JavaScript中本來是不支持事件的追加和移除的,但是我們可以通過自己的編寫代碼來實現。這用到了閉包

那閉包是什麼?

閉包就是內部函數用到了外部函數的參數或變量

              外部函數的返回值是內部函數的調用

接下來是代碼

        var eventHelper = (function () {
            var kv = {};
            return {
                add: function (name, func) {
                    kv[name] = func;
                    window.onload = function () {
                        for (var k in kv) {
                            kv[k]();
                        }
                    };
                },
                remove: function (name) {
                    for (var k in kv) {
                        if (k == name) {
                            delete kv[name];
                        }
                    }
                }
            };
        })();

大家可以舉例子試一下

        eventHelper.add("f1", function () {
            alert("第一個方法");
        });
        eventHelper.add("f2", function () {
            alert("第二個方法");
        });
        eventHelper.remove("f1");

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章