2010-04-30 1 views
7

J'ai fondamentalement le même problème dans cette question:jQuery.remove() - Existe-t-il un moyen de récupérer l'objet après l'avoir supprimé?

Flash Video still playing in hidden div

Je l'ai utilisé le .remove jquery appel et cela fonctionne. Cependant, j'ai des boutons précédent/suivant quand un utilisateur fait défiler les divs cachés/non cachés. Ce que je dois savoir, une fois que je retire l'objet flash, y a-t-il un moyen de le récupérer autre que de rafraîchir la page?

Fondamentalement, cela peut-il être traité côté client ou vais-je avoir besoin d'implémenter un peu de gestion côté serveur. Detach() ne fonctionnera pas car la vidéo flash continue à être lue.

Je ne peux pas simplement le cacher parce que la vidéo continue à jouer aussi bien.

Répondre

22
$myVariable = $("#removeMe").detach(); 

La fonction .detach() est explicitement fait de prendre quelque chose hors du DOM à remettre plus tard. C'est un bon.

API Ref: http://api.jquery.com/detach/

+0

Cela ressemble à un problème de Flash alors (que je connais peu de choses). Est-ce que JS peut envoyer un signal à un objet flash pour le mettre en pause? C'est un peu difficile de répondre à une question changeante. –

+0

pas une question changeante. J'ai posté un lien montrant quel est le problème. C'est un problème d'IE, pas un problème de flash. –

+0

Cela aurait fonctionné, cependant, cela ne fonctionne pas avec les objets Flash. Mais c'est toujours le plus correct. –

1

Vous pouvez l'assigner à une variable:

var undo = $('#someDiv') 

Ensuite, utilisez la valeur de « défaire » pour re-insérer l'élément.

$('#placeholder').html(undo) 

Peut-être que vous êtes mieux de le cacher au lieu de l'enlever.

+0

peut pas le cacher. Les divs contiennent des vidéos flash, qui dans tous les autres navigateurs, quand leur div est caché, ils arrêtent de jouer. dans IE, ils continuent à jouer, d'où la nécessité de l'enlever. –

2

Avez-vous essayé:

var clone = $("#someDiv").clone(true); 
$("#someDiv").remove(); 
+1

+1: Cela fonctionne très bien! Mais j'utiliser '.empty()' à la place de remove, de cette façon vous pouvez rajouter le contenu dans le même div. – Mottie

Questions connexes