0

ユーザーが記事を「いいね」できるページがあります。

ページが最初に読み込まれたときに、既に記事が気に入ったかどうかを表示したいと考えています。

HTMLをDOMに追加するために使用しているコードは次のとおりです。

html += '<div class="gl_like">';
html += '<a href="#" class="like" id="'+image.article_id+'"><div class="bLike" title="Like this article"></div></a>';
html += '<a href="#" class="unlike" id="'+image.article_id+'"><div class="bUnlike" title="Unlike this article"></div></a>';
html += '</div>';

現在、ユーザーが既に記事を気に入ったかどうかについて、API が何を返すかを確認しています。

if(image.numLikes<1){
$('.like').show();
$('.unlike').hide();
html += 'wooo'; // to test the code works, it does
} else {
$('.like').hide();
$('.unlike').show();
}

「wooo」が html に追加されますが、表示/非表示機能は無視されています。「.like」クラスはすべての記事に表示されます。

私が望んでいるのは、ユーザーが記事を気に入らなかった場合は「.like」クラスが表示され、気に入った場合は「.unlike」クラスが表示されることです。

ここで何か不足していますか?

4

3 に答える 3

2

html を DOM のどこかに追加しますか?

そうでない場合は、これを試してください:

$(html).find('.like').show();
$(html).find('.unlike').hide();
于 2013-01-17T19:31:48.453 に答える
0

重複した id 属性を持つ要素を作成しています: id="'+image.article_id+'" 必要な一意になるようにこれを変更する必要があります。元:

html += '<div class="gl_like">';
html += '<a href="#" class="like" id="like_'+image.article_id+'"><div class="bLike" title="Like this article"></div></a>';
html += '<a href="#" class="unlike" id="unlike_'+image.article_id+'"><div class="bUnlike" title="Unlike this article"></div></a>';
html += '</div>';
于 2013-01-17T19:11:00.390 に答える
0

わかった、ありがとう:

if(image.numLikes<1){
    html += '<a href="#" class="like" id="'+image.article_id+'"><div class="bLike" title="Like this article"></div></a>';
    html += '<a href="#" class="unlike" id="'+image.article_id+'" style="display:none;"><div class="bUnlike" title="Unlike this article"></div></a>';
    } else {
    html += '<a href="#" class="like" id="'+image.article_id+'" style="display:none;"><div class="bLike" title="Like this article"></div></a>';
    html += '<a href="#" class="unlike" id="'+image.article_id+'"><div class="bUnlike" title="Unlike this article"></div></a>';
    }

show/hide を使用する代わりに、文字通り表示または非表示にする方が簡単です。

質問をうまく説明できたかどうかもわかりません。申し訳ありませんが、たくさんの回答に感謝します。

于 2013-01-17T19:36:47.163 に答える