2011-03-14 2 views
0

Voici le code HTML que voit mon navigateur. Je veux cacher l'élément div.embed:Cette fonction de masquage jQuery ne veut tout simplement pas fonctionner

<div id="video_div"> 
<img src="http://i2.ytimg.com/vi/ERF9lCf86I8/hqdefault.jpg" style="width: 200px; "> 
<div class="embed"> 
<object width="300" height="194"><param name="wmode" value="opaque"><param name="movie" value="http://www.youtube.com/v/ERF9lCf86I8?version=3"> 
<param name="allowFullScreen" value="true"> 
<param name="allowscriptaccess" value="always"><embed src="http://www.youtube.com/v/ERF9lCf86I8?version=3" type="application/x-shockwave-flash" width="300" height="194" allowscriptaccess="always" allowfullscreen="true" wmode="opaque"> 
</object> 
</div> 
</div> 

Voici mon code application.js pour remplacer dynamiquement un lien avec la vidéo intégrée correspondante, afficher la vignette, et sans succès masquer la vidéo:

$(document).ready(function() { 

$('a.oembed').embedly({maxWidth:300,'method':'replace'}).bind('embedly-oembed', function(e, oembed){ 
    $("#video_div").prepend($("<img>", { src: oembed.thumbnail_url, width:200 })); 
}); 
$('div.embed').hide(); 
}); 

Il est vraiment bizarre que cette méthode de masquage ne fonctionne pas. Des idées pourquoi?

+0

Semble fonctionner correctement ici. - http://jsfiddle.net/Marcel/umQpw/ – Marcel

+0

@Marcel: Je vois encore la vidéo (sur Chrome sous Linux). –

+0

ahh, je suis sur Chrome ainsi –

Répondre

1

Je m'attends à ce que le code au-dessus de l'appel hide échoue et l'appel n'est pas exécuté du tout. Si je mets un faux plug-in embedly, cela fonctionne: http://jsbin.com/ucuru4/2

Je recommande de faire un pas à pas dans le code dans un débogueur. Chrome, Safari, Opera et IE8 ont tous des débogueurs intégrés. Il y a Firebug pour Firefox, et l'édition gratuite de VS.Net pour le débogage sur les versions précédentes d'IE.

Si le code est correct mais que vous constatez que l'appel embedly échoue par intermittence, il est préférable de l'insérer dans un bloc try/catch.

+0

Je ne sais vraiment pas comment faire cela. J'ai fini par utiliser un attribut CSS pour masquer la vidéo, mais maintenant j'implémente une simple fonction jQuery click pour basculer la classe et ça ne marche pas (alors que ça marche dans les hacks jfiddle d'autres personnes). Je pense qu'il y a peut-être une erreur fondamentale que je fais que personne ne semble comprendre en regardant simplement les extraits de code. Voulez-vous s'il vous plaît prendre un coup d'oeil à mon code? Il n'y a pas grand-chose et c'est une application Ruby on Rails. –

+0

@Justin: Je ne suis pas un Rubis, j'en ai peur. Je pense vraiment, cependant, que si vous faites un pas à travers le code côté client dans un débogueur, vous verrez ce qui ne va pas. Il est facile d'utiliser le débogueur dans Chrome: appuyez sur Maj + Ctrl + I, accédez à l'onglet Scripts, recherchez la ligne '$ ('div.embed'). Hide();' line et cliquez sur la gouttière située à gauche de celle-ci. pour mettre un point d'arrêt là. –

+0

shift ctrl l ne fait rien pour moi:/ –

Questions connexes