JS_增加事件,移除事件,动态元素的增删事件

本文介绍了如何在静态页面和动态生成元素中管理内存并正确处理事件监听器的添加与移除。通过示例代码展示了如何避免内存泄漏,尤其是在动态添加DOM元素时释放不再使用的事件处理函数。
/*
 * 静态页面要施放因(add)此元素添加事件的内存.
 */
<input id="add" type="button" value="add" />
<input id="det" type="button" value="det" />
<script type="text/javascript">
(function(){
    var add = document.getElementById("add");
    var det = document.getElementById("det");
    /*增加事件*/
    ~function(){
        var str = new Array(1000).join(new Array(5000).join("xxxxx"));
        add.onclick = function(){
            var arr = [];
            arr.push(str);
            }
        }();
    /*移除事件*/
    ~function(){
        det.onclick = function(){
            add.onclick = null;
            }
        }();
})();
</script>
/*
 * 动态添加的元素施放内存.
 */
<input id="add" type="button" value="add" />
<input id="det" type="button" value="det" />
<div id="box"></div>
<script type="text/javascript">
(function(){
    var add = document.getElementById("add");
    var det = document.getElementById("det");
    var box = document.getElementById("box");
    /*增加事件*/
    ~function(){
        var str = new Array(1000).join(new Array(5000).join("xxxxx"));
        add.onclick = function(){
            var temp = document.createElement("div");
            temp.id = "hello";
            temp.className = "hello"
            box.appendChild(temp);
            temp.onclick = function(){
                var arr = [];
                arr.push(str);
                }
            }
        }();
    /*移除事件*/
    ~function(){
        det.onclick = function(){
            document.getElementById("hello").onclick = null;
            add.onclick = null;
            }
        }();
})();
</script>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能体格

你的鼓将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值