2009-08-27 68 views
1

當使用dojox.av.FLVideo小部件時,我遇到了一個問題,我無法手動銷燬小部件。在簡單的邏輯:dojox flvideo小部件在AJAX中銷燬

第一AJAX調用 [檢索與視頻部分頁A]

var videoDiv = document.createElement('div'); 
videoDiv.id = "vid"; 
mainContent.appendChild(videoDiv); 
var newVideo = new dojox.av.FLVideo({initialVolume:.7, mediaUrl:'video/sample.flv', autoPlay:true, isDebug:true}, "vid"); 
//video plays and everything looks fine 

第二AJAX調用 [獲取另一局部網頁B來代替視頻]

var oldVideo = dijit.byId('vid'); 
oldVideo.destroy(); //should destroy this widget but doesn't 

由於某種原因,這個小部件沒有被銷燬,導致了一個問題,因爲當我們回去執行AJAX調用並再次嘗試頁面A和視頻時,它會拋出該ID已經存在異常。 我也試過其他funcions,如我們destroyRecursive(),disconnect()但他們都沒有工作,有沒有人知道問題在哪裏?

乾杯

彼得

+0

xref:http://bugs.dojotoolkit.org/ticket/9887 – peller 2009-09-18 04:09:34

回答

1

嘗試這種情況:

變種oldVideo = dijit.byId( 'VID');

oldVideo.destroy();

刪除oldVideo;

+0

謝謝你的建議。 我試過了,問題依然存在。通過查看Firebug並在javascript中設置斷點,在我看來,這兩個代碼行完全不受影響: oldVideo.destroy(); 刪除oldVideo; 彼得 – PeterYunZhang 2009-09-11 18:32:27

+0

彼得, 我曾在那裏破壞的情況下,()似乎沒有工作,這並(destroyRecursive(真)): 如果(!傳說=未定義){ legend.destroyRecursive(真); } 看看oldVideo.destroyRecursive(true)是否適合你。 – GoinOff 2009-09-21 18:18:18

+0

@GoinOff很遺憾,我無法工作,我提交了一個錯誤報告。鏈接是bugs.dojotoolkit.org/ticket/9887 as @peller在我原來的帖子中留言。 無論哪種方式謝謝你的幫助。 乾杯 彼得 – PeterYunZhang 2009-12-16 16:20:55