2013-08-12 3 views
1

Mon code comme bouton se présente comme suit:refresh div contenant facebook comme bouton

<div class="like-btn">                  

<fb:like href="http://www.example-url.com" layout="box_count" show_faces="true" width="450" action="like" colorscheme="light" ></fb:like> 

</div> 

Mon problème est que je ne veux pas la boîte de commentaires à afficher après avoir cliqué sur comme. J'utilise la version XFBML de Like Button pour le suivi, donc la boîte de commentaire est inévitable.
J'ai plusieurs boutons similaires dans la page avec des variables href.
J'ai lu toutes les questions/solutions concernant la suppression de la boîte de commentaire dans ce scénario, mais aucune d'elles ne fonctionne. J'espère que Rafraîchir le contenu de <div class="like-btn"> aiderait.

Quelqu'un pourrait m'aider s'il vous plaît comprendre comment je devrais résoudre ce problème?

Voici ma tentative à ce jour:

//copying content of the div since the href is retrieved via php and is variable 
var content = $('.like-btn').html(); 
$('.like-btn').empty(); 
$('.like-btn').html(content); 

MISE À JOUR

L'approche présentée dans la réponse acceptée fonctionne parfaitement pour la valeur par défaut comme le bouton (XFBML/HTML5) mais pas pour le box-count style.

+1

Quel est le résultat HTML lorsque vous cliquez dessus? –

+0

Il supprime le contenu de .like-btn, mais lorsque j'ajoute le contenu il n'y a pas de changement visible. – md1hunox

+0

c'est parce que Javascript analyse et récupère cette balise ne signifie rien pour HTML, donc vous ne pouvez pas simplement l'ajouter au format HTML. vous avez vraiment besoin de descendre le chemin CSS. –

Répondre

1

Avec la façon dont vous utilisez actuellement, essayez d'ajouter ceci à la page:

<style type="text/css"> 
.like-btn { 
    height: 25px; 
    overflow: hidden; 
} 
</style> 

Si cela ne fonctionne pas, utilisez le code HTML5 pour afficher à la place du bouton FB Comme, quelque chose comme ceci:

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/en_US/all.js#xfbml=1"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk'));</script> 

<style type="text/css"> 
.fb-like{ 
    height: 25px; 
    overflow: hidden; 
} 
</style> 

<div class="fb-like" data-href="http://developers.facebook.com/docs/reference/plugins/like" data-width="450" data-show-faces="false" data-send="true"></div> 

Nous avons mis la hauteur de .fb-like à 25 pixels et overflow: hidden, ce qui empêchera la boîte de commentaires de sauter complètement!

Vous pouvez le voir travailler ici: http://devs.dream-portal.net/dp11/index.php

MISE À JOUR

Pour le style boîte-count, vous pouvez utiliser la version iFrame pour la zone de comptage et aucune boîte de commentaire gets affiché (atleast pas me):

<iframe src="//www.facebook.com/plugins/like.php?href=http%3A%2F%2Fdevelopers.facebook.com%2Fdocs%2Freference%2Fplugins%2Flike&amp;width=450&amp;height=65&amp;colorscheme=light&amp;layout=box_count&amp;action=like&amp;show_faces=true&amp;send=true" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:450px; height:65px;" allowTransparency="true"></iframe> 

MISE à JOUR RE-

Vous pouvez également consulter le Top réponse sur cette question stackoverflow ici avec 114 voix en:Essayez-le et peut-être que cela fonctionnera ... pas sûr.

+2

Je pense que vineetrok a toujours besoin du bouton "like", mais pas de la boîte de commentaire qui en résulte –

+0

Merci pour la réponse, mais en faisant afficher: aucun ne le cachera simplement. J'ai besoin de l'actualiser – md1hunox

+0

peut-être essayer '.remove' au lieu de' .empty() 'Mise à jour de la réponse pour l'enlever et de le remettre dans l'élément parent. Si vous avez besoin de lui donner une classe et un élément, il vous suffit de redéfinir la classe et l'élément avant de placer du contenu. –

2

Vous pouvez obtenir la classe de boîte de commentaire via l'analyse de code et appliquer la réponse CSS de Solomon Closson pour l'enlever de l'affichage de la page.

Quelque chose comme:

<style type="text/css"> 
    .like-btn-comment-box { display: none !important; } 
</style> 

Où est la boîte .like-btn-comment-box commentaire classe

+0

Oui, si vous pouvez obtenir la classe de boîte de commentaire et l'appliquer à la tête, ce serait la meilleure façon de le faire. –

+0

Mais cette classe est à l'intérieur de l'iframe, et AFAIK, il n'est pas possible de bidouiller avec le contenu d'un iframe qui est chargé à partir d'un domaine différent. Corrigez-moi si j'ai tort, s'il-vous plait. – md1hunox

+0

C'est vrai, maintenant la dernière idée que j'ai, est d'appliquer un cache complet sur le bouton, ajouter votre propre bouton (copier l'image) et une action javascript sur un clic qui clique sur le bouton caché, est-ce compréhensible? –