2013-10-14 25 views
12

Toggling button text in jqueryこの質問を見た後、私は自分の状況でそれを再作成しようとしましたが、機能していないようです。ここでjQuery:クリック時のボタンのテキストを変更

は、私がやったのフィドルです:http://jsfiddle.net/V4u5X/

$('.SeeMore2').click(function(){ 
    var $this = $(this); 
    $this.toggleClass('SeeMore'); 
    if($this.hasClass('.SeeMore2')){ 
     $this.text('See More');   
    } else { 
     $this.text('See Less'); 
    } 
}); 

今までに一度だけif文を実行しているようです。私は何が欠けていますか?

+6

hasClass' 'の引数に' .'を入れないでください。 – Barmar

+0

これを行うと、実際にはテキストはまったく変更されません – Scherf

+1

seeMoreクラスを切り替えますが、seemore2を決して扱わない –

答えて

33
$('.SeeMore2').click(function(){ 
    var $this = $(this); 
    $this.toggleClass('SeeMore2'); 
    if($this.hasClass('SeeMore2')){ 
     $this.text('See More');   
    } else { 
     $this.text('See Less'); 
    } 
}); 

このようにする必要があります。あなたは、正しいクラスを切り替えて、 "。"を取り出してください。 hasClass

http://jsfiddle.net/V4u5X/2/

+0

* facepalm * .toggleClassの引数がどのように機能しているのか誤解されました。私は、()内に別のクラスを指定することを前提としていました。私のオリジナルではSeeMore2のクラスがありますが、今見ています。助けてくれてありがとう! – Scherf

+0

同じボタンのインスタンスが2つ以上ある複数のエントリを含むアーカイブでは機能しません。 @Scherf – Dev

1

からこれはあなたのために働く必要があります。

$('.SeeMore2').click(function(){ 
     var $this = $(this); 
     $this.toggleClass('SeeMore2'); 
     if($this.hasClass('SeeMore2')){ 
      $this.text('See More');   
     } else { 
      $this.text('See Less'); 
     } 
}); 
1

その作業のショートコード

$('.SeeMore2').click(function(){ var $this = $(this).toggleClass('SeeMore2'); if($(this).hasClass('SeeMore2')) { $(this).text('See More');
} else { $(this).text('See Less'); } });

4

をこのjavascこの、 を試してみてくださいすべての時間をクリックしてテキストを変更するためのスクリプトコード。 http://jsfiddle.net/V4u5X/2/

htmlコード

<button class="SeeMore2">See More</button> 

javascriptの

$('.SeeMore2').click(function(){ 
     var $this = $(this); 
     $this.toggleClass('SeeMore2'); 
     if($this.hasClass('SeeMore2')){ 
      $this.text('See More');   
     } else { 
      $this.text('See Less'); 
     } 
    }); 
関連する問題