2

jqueryでLIKEボタンとUNLIKEボタンを作成したいのですが、

 <span><a class="like-Unlike" href="">Like</a></span> |
   function LikeUnLikeButton() {
            $(".like-Unlike").click(function (e) {
                if ($(this).html() == "Like") {
                    $(this).html('Unlike');
                }
                else {
                    $(this).html('Like');
                }
            });
        }

しかし、それは機能していません。問題は、「いいね」ボタンをクリックすると、ボタンとは異なり、再び「いいね」ボタンに戻ることです。

こちらでチェックしてください:http://jsfiddle.net/mHJnH/

4

6 に答える 6

2

$(this の閉じ括弧がここにありません。

変化する

  $(this.html('Unlike'));

 $(this).html('Unlike');

問題の更新のために編集

関数LikeUnLikeButton(){は必要ないかもしれません

ライブデモ

$(".like-Unlike").click(function(e) {
    if ($(this).html() == "Like") {
        $(this).html('Unlike');
    }
    else {
        $(this).html('Like');
    }
    return false;
});​
于 2012-11-06T12:50:30.847 に答える
1

コードにいくつかのエラーがあります

$(this.html('Unlike'));

する必要があります

$(this).html('Unlike');

の場合も同様です

$(this.html('Like'));

する必要があります

$(this).html('Like');

于 2012-11-06T12:51:45.733 に答える
1

あなたはほとんどそこにいました!

次のコードが機能します。

<span><a class="like-Unlike" href="#">Like</a></span>
<script>
function LikeUnLikeButton() {
            $(".like-Unlike").click(function (e) {
                if ($(this).html() == "Like") {
                    $(this).html('Unlike');
                }
                else {
                    $(this).html('Like');
                }
            });
        }
LikeUnLikeButton();
</script>
于 2012-11-06T13:00:26.890 に答える
0

これを試してみてください。 http://jsfiddle.net/fedmich/DTAbj/

$(this) をキャッシュして高速化することをお勧めします。次に、単に .html() を使用して文字列を一致させるのではなく、 $.data を使用して保存します。

$(function() {
$('.like-button').click(function(){
    var obj = $(this);
    if( obj.data('liked') ){
        obj.data('liked', false);
        obj.html('Like');
    }
    else{
        obj.data('liked', true);
        obj.html('Unlike');
    }
});
});​
于 2012-11-06T12:54:11.347 に答える
0

HTMLコード全体ではなく、ボタンの値にアクセスするために$(this).html() == "Like" 使用する代わりに。$(this).val() == "Like"したがって、値を変更するときは、$(this).val("Like")または $(this).val("Unlike")

于 2014-08-05T15:19:54.390 に答える