2013-10-14 16 views
12

Sau khi nhìn thấy Toggling button text in jquery câu hỏi này, tôi đã cố gắng tạo lại nó trong hoàn cảnh của mình nhưng dường như không hoạt động.jQuery: Thay đổi văn bản nút khi nhấp vào

Đây là một fiddle về những gì tôi đã thực hiện: 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'); 
    } 
}); 

Dường như chỉ có bao giờ chạy câu lệnh if một lần. Tôi đang thiếu gì?

+6

Đừng đặt một '.' trong đối số cho 'hasClass'. – Barmar

+0

Nếu tôi làm điều đó thực sự không thay đổi văn bản ở tất cả – Scherf

+1

Bạn chuyển đổi lớp seeMore nhưng không bao giờ thỏa thuận với seemore2 –

Trả lời

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

Điều này nên thực hiện. Bạn phải chắc chắn rằng bạn chuyển đổi các lớp học chính xác và đưa ra các "." từ hasClass

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

+0

* facepalm * Tôi hiểu lầm cách đối số làm việc cho .toggleClass. Tôi giả định rằng bạn sẽ chỉ định một lớp riêng biệt trong(). Trong bản gốc của tôi nó vẫn có lớp SeeMore2, bây giờ tôi nhìn vào nó. Cảm ơn đã giúp đỡ! – Scherf

+0

Không hoạt động trên các lưu trữ chứa nhiều mục nhập có nhiều hơn 1 bản sao của cùng một nút. @Scherf – Dev

1

này nên làm việc cho bạn:

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

mã ngắn công việc của mình

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

4

thử này, javasc này mã ript để thay đổi văn bản tất cả thời gian để nhấp vào nút. http://jsfiddle.net/V4u5X/2/

mã 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'); 
     } 
    }); 
Các vấn đề liên quan