2016-04-08 14 views
0

Facebookのソーシャルプラグインを使用していて、すべて正常に動作します。Facebookのコメントが0の場合divを表示しない

<span class="fb-comments-count" data-href="[article URL]"></span> 

は、私のホームページにロードされた各記事のゼロであるとofcourseのないゼロのものを維持

chat bubble

場合、私は私の「チャットバブル」のdiv要素を非表示にします。 また、私はajaxを使って他の記事を読み込むために "もっと見る"ボタンを使っています。

私はすでにアドレスは、コメントが含まれており、それが働いたかどうかの情報を取得するためにhttp://graph.facebook.com/を使用してみましたが、私は、各記事のためにhttp://graph.facebook.com/をpingするために必要なので、私のページの読み込み時間は最悪だったので、私はそれを削除しました。

答えて

1

は「FB-コメントカウントを持つスパンで関数反復を作成していません"クラス。このスパンのテキストがゼロかどうかを調べる。それがゼロの場合は、このクラスの親を取得(DIV)し、hide()メソッドを使用してバブルDIVを非表示にします。

https://api.jquery.com/each/
//for iterating .fb-comments-count

http://api.jquery.com/text/
//for getting get count from span

https://api.jquery.com/parent/
//to get the parent DIV by class or ID of span

​​

//to hide the perticular div by class or ID.

AJAXを使用して記事を取得するたびにこの関数を呼び出します。

function yourCustomFunction() { 
    $('span.fb-comments-count').each(function(index) { 
     var count=$(this).text(); 
     if(count==0) { 
       var parentDiv=$(this).parent('article.yourParentDivClass'); 

       parentDiv.find('.bubbleDiv').hide(); 
     } 
    }); 
} 
+0

有望ですが、ページが読み込まれた後にFacebookのコメント数を読み込むのに一定の時間がかかるため、問題がありますか? –

+0

この機能は、Facebookのコメントが読み込まれた後でのみ呼び出すことができます。成功のためのコールバック機能が必要です。その後、それは残りを処理します。 –

+0

JS SDKには、[購読可能なイベント](https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v2.5)があり、そのうちの1つは 'xfbml 'と呼ばれます。レンダリング(render)」、およびページ上のすべてのソーシャルプラグインがロードされると発生します。 ( 'fb-comments-count'でもうまくいくかどうかは完全にはわかりませんが、そうすべきだと思います。) – CBroe

0

コメントがない場合は表示する、そのクラスを設定することができるようにスパンは、「fb_comments_count_zero」クラスを与えている:あなたのstyleshetでどれ

+0

私はその答えを見ましたが、試してみましたが、もうそれはしません。ゼロを読み込んだ後で要素を調べると、class = "'fb_comments_count'と表示されます。私はまだディスプレイを置いてみた:なし; 'fb_comments_count_zero'クラスの私のCSSファイルでは何もしませんでした。 –

+0

'if($("。fb-comments-count ")。テキスト()==" 0 "){ $("。fb-comments-count ")。hide() ; } ' – Jainil

+0

あなたの答えともう1つの答えの組み合わせを使って解決策を作りました。私はまだFacebookのレンダリングイベントを購読する必要がありました。なぜなら、私は自分のページに記事を追加するためにajaxを使用していました。そして、私が隠そうとしていたdivはコメント1ではありませんでした。しかし、forループを使用して0値のスパンを検索する代わりに、fb_comments_count_zeroクラスを使用しました。 –

関連する問題