2010-08-27 9 views
3

Voici mon problème:Afficher/masquer dynamiquement le bouton Facebook like

J'ai réussi à inclure le bouton Facebook Like sur ma page de test. Il y a plusieurs articles par page et il y a un bouton facebook par article. J'utilise la version XFBML.

Tout va bien si les boutons sont présents dans la page au chargement. Cependant, maintenant je veux montrer les boutons par élément seulement au passage de la souris sur l'élément conteneur ayant l'élément et le bouton. Ainsi, le bouton fblike html est caché sur le chargement de la page et j'ai ajouté du code pour les montrer sur mouse-hover :

$(content).mouseenter(function(){ 
     $(this).find('.fblike').show(); // toggle the display of the button 

     FB.XFBML.parse(this); //re-parse xfbml 
    }); 

Le bouton apparaît parfaitement sur le pointeur de la souris sur le conteneur maintenant, mais ne fonctionne jamais. Cliquer sur le bouton ne fait rien.

Est-ce que quelqu'un a déjà rencontré ce problème?

EDIT:

.fblike est une classe sur une div contenant le fb: comme étiquette.

La ré-analyse est requise car lors du chargement de la page, chaque div avec la classe .fblike est masqué. Le SDK JavaScript de Facebook n'analyse pas les balises xfbml à l'intérieur des éléments qui sont cachés.

+0

J'ai fait une solution qui fonctionne, sans ré-analyse supplémentaire (peut-être que FB a changé le SDK). Avez-vous déjà résolu le problème? Mon problème en ce moment est qu'il analyse et charge chaque iframe lorsque le contenu est chargé, même si chaque bouton est caché, et il ralentit le chargement de la page. – Cristian

+0

cela a-t-il fonctionné? – harry

Répondre

0

Je pense que votre problème est dans cette portée variable. Essayez ceci:

 
FB.XFBML.parse($(this)); 

Parce que vous n'avez pas besoin de cette (fonction anonyme appelée), mais l'élément (sur lequel cette fonction anonyme a été appelée).