使用dojox.av.FLVideo小部件时,我遇到了一个无法手动销毁小部件的问题。简单的逻辑:
第一次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已经存在的异常。 我也试过其他功能,比如我们destroyRecursive(),disconnect()但是没有一个工作,有没有人知道问题出在哪里?
干杯
彼得
答案 0 :(得分:1)
试试这个:
var oldVideo = dijit.byId('vid');
oldVideo.destroy();
删除oldVideo;