2010-11-16 21 views
0

J'ai un problème pour basculer le contenu d'une div à l'aide des fonctions jQuery cloner et ajouter. En quelques mots, j'utilise deux liens pour montrer et cacher des vidéos flash: link1 montre video1 et cache video2. Link2 montre video2 et cache video1.jQuery Problème de clonage/ajout de vidéo Flash sur IE8

Voici le code que j'ai:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
<script type="text/javascript" src="inc/jquery/jquery.js"></script> 
</head> 
<body> 
<div class="leftcolumn"> 
    <div class="videoholder"> 
    <div id="box1"> 
     <object width="300" height="225"> 
     <param name="movie" value="http://www.youtube.com/v/uv9RpD4bbNw?fs=1&amp;hl=en_US&amp;rel=0"> 
     </param> 
     <param name="allowFullScreen" value="true"> 
     </param> 
     <param name="allowscriptaccess" value="always"> 
     </param> 
     <embed src="http://www.youtube.com/v/uv9RpD4bbNw?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="300" height="225"></embed> 
     </object> 
     <p> <a href="#" name="box2" class="sele" onclick="return false">View video in Spanish</a></p> 
    </div> 
    <div id="box2"> 
     <object width="300" height="225"> 
     <param name="movie" value="http://www.youtube.com/v/HxBRdJCV8Os&amp;hl=en_US&amp;fs=1?rel=0"> 
     </param> 
     <param name="allowFullScreen" value="true"> 
     </param> 
     <param name="allowscriptaccess" value="always"> 
     </param> 
     <embed src="http://www.youtube.com/v/HxBRdJCV8Os&amp;hl=en_US&amp;fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="300" height="225"></embed> 
     </object> 
     <p> <a href="#" name="box1" class="sele" onclick="return false">View video in English</a></p> 
    </div> 
    </div> 
    <script type="text/javascript"> 

          $("#box1").show().siblings().hide(); // Default video 

          $(".sele").click(function(){ 
           switch(this.name) { 
             case "box1" : 
               var box2 = $("#box2").clone(true); 
               $("#box2").remove(); 
               $(".videoholder").append(box1); 

               $(".videoholder").append(box2); 
               $("#box1").show().siblings().hide(); // 

               break; 
             case "box2" : 
               var box1 = $("#box1").clone(true); 
               $("#box1").remove(); 
               $(".videoholder").append(box2); 

               $(".videoholder").append(box1); 
               $("#box2").show().siblings().hide(); // 

               break; 
           } 
          }); 

</script> 
</div> 
</body> 
</html> 

C'est la chose la plus proche que je l'ai fait pour le faire fonctionner dans IE. Je serais plus facile juste pour utiliser

<script type="text/javascript"> 
    $("#box1").show().siblings().hide(); // Default 
    $(".sele").click(function(){ 
    $("#" + this.name).show().siblings().hide(); 
    }); 
</script> 

Mais cela ne fonctionne pas sur IE: la vidéo cachée continue à jouer.

Je vous remercie pour toutes les idées que vous souhaitez partager.

Meilleurs voeux. Luis

Répondre

0

Vous devez définir le WMODE sur 0 ou transparent. Fix'd:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>Untitled Document</title> 
<script type="text/javascript" src="inc/jquery/jquery.js"></script> 
</head> 
<body> 
<div class="leftcolumn"> 
    <div class="videoholder"> 
    <div id="box1"> 
    <object width="300" height="225"> 
    <param name="movie" value="http://www.youtube.com/v/uv9RpD4bbNw?fs=1&amp;hl=en_US&amp;rel=0"> 
    </param> 
    <param name="allowFullScreen" value="true"> 
    </param> 
    <param name="allowscriptaccess" value="always"> 
    </param> 
    <param name="wmode" value="transparent"></param> 
    <embed src="http://www.youtube.com/v/uv9RpD4bbNw?fs=1&amp;hl=en_US&amp;rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="300" height="225" wmode="transparent"></embed> 
    </object> 
    <p> <a href="#" name="box2" class="sele" onclick="return false">View video in Spanish</a></p> 
</div> 
<div id="box2"> 
    <object width="300" height="225"> 
    <param name="movie" value="http://www.youtube.com/v/HxBRdJCV8Os&amp;hl=en_US&amp;fs=1?rel=0"> 
    </param> 
    <param name="allowFullScreen" value="true"> 
    </param> 
    <param name="allowscriptaccess" value="always"> 
    </param> 
    <param name="wmode" value="transparent"></param> 
    <embed src="http://www.youtube.com/v/HxBRdJCV8Os&amp;hl=en_US&amp;fs=1?rel=0" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="300" height="225" wmode="transparent"></embed> 
    </object> 
    <p> <a href="#" name="box1" class="sele" onclick="return false">View video in English</a></p> 
</div> 
</div> 
</div> 
</body> 
</html> 
+0

Ooooohh! cela fonctionne sur IE7 mais pas sur IE8. – luenib

+0

Merci beaucoup. Je vais continuer à jouer avec les paramètres. – luenib