2013-10-14 151 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

不適用於包含具有多個同一按鈕的多個實例的多個條目的檔案。 @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 ript代碼以便隨時更改文本以單擊按鈕。 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'); 
     } 
    });