在 IE8 中向导致内存泄漏的元素添加 "body" 的 click 事件



在我的项目中,我们面临着IE8的内存泄漏,因为我不知道这是在哪里发生的,我做了一些试验,发现泄漏发生时,我包括这段代码

$("body").off().on('#CancelTransfer',"click", function (e) { });

我不确定为什么这是一个问题,但当我把它改成像

$('#CancelTransfer').click(function(e){});

内存没有增加,在前一种情况下,ie的内存使用逐渐增加到崩溃前的1.7gb。

我的问题是为什么会发生这种情况,我在这里所做的只是以不同的方式添加一个事件。

这里还有一件事要注意的是,我确实在使用类似的事件调用方式在另一个类上,似乎没有任何问题

$("body").off().on(".subMenu", "click", function (e) {
        sessionStorage.setItem("subMenu", $(this).attr('data-submenu')); //need to remove all dependentcases
    });

我对内存泄漏的概念真的很陌生,如果有人能向我澄清为什么会发生这种情况,并建议一个解决方案,将是非常伟大的。

谢谢。

编辑:只是为了澄清这一点,在最后的情况下,我添加点击事件到"。子菜单,它没有给任何内存泄漏,因为没有元素与该类。但是,如果假设元素存在,那么在后一种情况下也会出现问题。

使用美元(的身体)。On ('click', function(){});

最新更新