作者fillano (冒牌费大公)
看板Ajax
标题Re: [问题] delete function object
时间Sat Feb 14 09:42:32 2009
嗯嗯,其实最好补充一点,是关於jQuery怎样管理events(1.2.6版,1.3我还没仔细看)
你用bind、click加上event时,你传给他的匿名函数会存放在$.cache里面,你可以用
firebug来观察看看。
当使用$(node).html('alter content')或是$(node).load('url')等去更动node的时候,
如果有attach事件的node因此没有了,jQuery会从$.cache把他移除。但是如果你是用像
document.getElementById('xxx').innerHTML = 'alter content';的方式去更动,
jQuery是不会去移除放在$.cache里面的匿名函数的。所以使用jQuery的话,尽量所有动
做都用jQuery比较好,不然会有这类的leak。
--
Sapere Aude! 这就是启蒙运动的口号!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.248.166.83
1F:推 sweetpotatoa:所以如果希望每个page在change之後自动把该page会使 02/14 10:33
2F:→ sweetpotatoa:用到的functions清掉的话是不是要使用匿名函式比较好 02/14 10:34
3F:→ sweetpotatoa:阿(全都使用)? 02/14 10:34
4F:→ fillano:你用bind、click等绑定事件处理函数时,jQuery会用这种方 02/15 13:49
5F:→ fillano:法来做管理啦,所以只要你都用jQuery做,就不会出问题。跟 02/15 13:49
6F:→ fillano:是不是用匿名函数没有关系。dom的removeEventListener方法 02/15 13:52
7F:→ fillano:,需要使用跟add时用的同一个函数物件的reference,所以必 02/15 13:53
8F:→ fillano:需把这些事件函数存放在$.cache里面,才有办法移除。 02/15 13:53