2009-08-27 6 views
1

Lors de l'utilisation du widget dojox.av.FLVideo, j'ai rencontré un problème où je ne peux pas détruire le widget manuellement. Dans une logique simple:dojox flvideo widget détruire dans AJAX

1er appel AJAX [Récupère une page Une partielle avec vidéo]

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 

2ème appel AJAX [Obtenir une autre page partielle B pour remplacer la vidéo]

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

Pour quelque raison que ce widget n'est pas détruit, causant un problème parce que quand nous revenons à effectuer l'appel d'AJAX et essayons à la page A et à la vidéo encore, il jette l'identifiant existe déjà exception. J'ai aussi essayé d'autres foncions telles que destroyRecursive(), disconnect() mais aucune n'a fonctionné, est-ce que quelqu'un sait où est le problème?

Vive

Peter

+0

xref: http://bugs.dojotoolkit.org/ticket/9887 – peller

Répondre

1

Essayez ceci:

var = oldVideo dijit.byId ('vid');

oldVideo.destroy();

delete oldVideo;

+0

Nous vous remercions de votre suggestion. Je l'ai essayé et le problème persiste. En regardant Firebug et en définissant des points d'arrêt en javascript, il me semble que ce widget vidéo n'est pas affecté du tout après ces deux lignes de code: oldVideo.destroy(); delete oldVideo; Peter – PeterYunZhang

+0

Peter, j'ai eu un cas où destroy() ne semble pas fonctionner et cela a fait (destroyRecursive (true)): if (! Légende = non définie) { legend.destroyRecursive (true); } Voyez si oldVideo.destroyRecursive (true) travaille pour vous. – GoinOff

+0

@GoinOff Malheureusement, je ne pouvais pas le faire fonctionner, j'ai déposé un rapport de bug. Le lien est bugs.dojotoolkit.org/ticket/9887 car @peller a commenté mon article original. De toute façon, merci pour votre aide. Cheers Peter – PeterYunZhang