2013-10-14 21 views
12

Nachdem ich diese Frage Toggling button text in jquery gesehen habe, habe ich versucht, es in meiner Situation neu zu erstellen, aber es scheint nicht zu funktionieren. HierjQuery: Ändern Sie die Schaltfläche Text auf klicken

ist eine Geige von dem, was ich getan habe: 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'); 
    } 
}); 

Es scheint immer nur einmal die if-Anweisung ausgeführt werden. Was vermisse ich?

+6

kein '.' im Argument' hasClass' Sie setzen. – Barmar

+0

Wenn ich das tue ändert es überhaupt den Text überhaupt nicht – Scherf

+1

Sie schalten die seeMore-Klasse, aber nie befasst sich mit seemore2 –

Antwort

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

Dies sollte es tun. Sie müssen sicherstellen, dass Sie die richtige Klasse wechseln und das "." vom hasClass

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

+0

* facepalm * Ich habe missverstanden, wie das Argument für .toggleClass funktioniert hat. Ich nahm an, dass Sie innerhalb der() eine separate Klasse angeben würden. In meinem Original hat es immer noch die Klasse von SeeMore2, jetzt wo ich es ansehe. Danke für die Hilfe! – Scherf

+0

Funktioniert nicht in Archiven, die mehrere Einträge mit mehr als einer Instanz der gleichen Schaltfläche enthalten. @Scherf – Dev

1

Dies sollte für Sie arbeiten:

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

seine Arbeit Kurzcode

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

4

dies versuchen, diese javasc ript code, um den Text jederzeit zu ändern, um auf die Schaltfläche zu klicken. http://jsfiddle.net/V4u5X/2/

HTML-Code

<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'); 
     } 
    }); 
Verwandte Themen