看板 Ajax 關於我們 聯絡資訊
嗯嗯,其實最好補充一點,是關於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
sweetpotatoa:所以如果希望每個page在change之後自動把該page會使 02/14 10:33
sweetpotatoa:用到的functions清掉的話是不是要使用匿名函式比較好 02/14 10:34
sweetpotatoa:阿(全都使用)? 02/14 10:34
fillano:你用bind、click等綁定事件處理函數時,jQuery會用這種方 02/15 13:49
fillano:法來做管理啦,所以只要你都用jQuery做,就不會出問題。跟 02/15 13:49
fillano:是不是用匿名函數沒有關係。dom的removeEventListener方法 02/15 13:52
fillano:,需要使用跟add時用的同一個函數物件的reference,所以必 02/15 13:53
fillano:需把這些事件函數存放在$.cache裡面,才有辦法移除。 02/15 13:53