Jquery 将单击事件添加到";上的元素;正文“;导致IE8内存泄漏

Jquery 将单击事件添加到";上的元素;正文“;导致IE8内存泄漏,jquery,memory-leaks,internet-explorer-8,jquery-click-event,Jquery,Memory Leaks,Internet Explorer 8,Jquery Click Event,在我的项目中,我们面临IE8中的内存泄漏,由于我不太清楚这是在哪里发生的,我做了一些试验,发现在我包含这段代码时,泄漏就发生了 $("body").off().on('#CancelTransfer',"click", function (e) { }); 我不确定这为什么会产生问题,但当我把它改成 $('#CancelTransfer').click(function(e){}); 内存没有增加,在前一种情况下,iexplorer的内存使用逐渐增加到崩溃前的1.7gb 我的问题是为什么会发

在我的项目中,我们面临IE8中的内存泄漏,由于我不太清楚这是在哪里发生的,我做了一些试验,发现在我包含这段代码时,泄漏就发生了

$("body").off().on('#CancelTransfer',"click", function (e) { });
我不确定这为什么会产生问题,但当我把它改成

$('#CancelTransfer').click(function(e){});
内存没有增加,在前一种情况下,iexplorer的内存使用逐渐增加到崩溃前的1.7gb

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

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

$("body").off().on(".subMenu", "click", function (e) {
        sessionStorage.setItem("subMenu", $(this).attr('data-submenu')); //need to remove all dependentcases
    });
我对内存泄漏的概念真的很陌生,如果有人能向我解释为什么会发生这种情况,并建议一种解决方法会非常好

谢谢

编辑:为了澄清这一点,在上一个例子中,我将单击事件添加到“.SubMenu”中,它没有给出任何内存泄漏,因为该类中没有元素。但是如果假设元素存在,那么在后一种情况下也会出现问题。

使用
$('body')。在('click',function(){})上

仍然使用IE8的用户可能已经习惯了什么都不管用,所以我不会太担心。不知道为什么要使用
$(“body”).off()
@A.Wolff使用off()关闭现有事件并重新注册,认为最好使用它。有什么问题吗?@PervyNinja我不认为它会导致内存泄漏,但对于IE8,谁知道呢。。。也就是说,仍然不确定为什么需要取消绑定任何以前的事件,顺便说一句,如果您只想取消绑定
单击
事件,然后使用
.off('click')