2017-06-14 11 views
1

Haben Sie eine Schaltfläche, die ich mit SlideToggle verwenden, um divs anzuzeigen. Der Schaltflächentext ist "Teilklienteliste anzeigen" ... wenn er angeklickt wird, ändert er sich zu "Teilklienteliste ausblenden". Es funktioniert gut, aber ich frage mich, ob ich einen Übergangseffekt hinzufügen könnte, so ändert sich der Text nicht einfach abrupt beim Klicken.Ersetzen von Schaltfläche Text mit jQuery

JS

$(document).ready(function(){ 
    $('.show-clients').click(function() { 
    $('.more').slideToggle(400); 
    $(this).text($(this).text() == 'Show Partial Client List' ? 'Hide Partial Client List' : 'Show Partial Client List'); 
    return false; 
    }); 
}); 

Die .mehr Klasse wird auf die versteckten div mit dem Inhalt angebracht, die zeigen wird, wenn die Schaltfläche geklickt wird.

HTML

<a href="#/" class="button solid show-clients">Show Partial Client List</a> 
+0

Mögliche Duplikat [jQuery animieren() ändern Text] (https://stackoverflow.com/questions/26939524/jquery-animate -change-text) – dloeda

+0

Sie können, aber um dies zu tun, verwenden Sie nicht die Methode text(), um sie zu aktualisieren. Sie müssen Ihrer Schaltfläche einen Container hinzufügen, der den Text enthält, und diesen Container ein- und ausblenden, wenn sich der Text ändert. – Korgrue

Antwort

0

können Sie, aber so zu tun, verwenden Sie nicht den Text () Methode, um es zu aktualisieren. Sie müssen einen Container zu Ihrer Schaltfläche hinzufügen, die den Text enthält, und diesen Container ein- und ausblenden, wenn sich der Text ändert.

HTML

<a href="#/" class="button solid show-clients"><div class="fadr">Show Partial Client List</div></a> 

JS

$('.fadr').fadeOut(1000, function() { 
    $('.fadr').html("Your New Text"); 
    $('.fadr').fadeIn(); 
    }); 
+0

Schön gemacht. Ich habe es mit dem Click-Event funktioniert und es ist immer noch mit dem SlideToggle verbunden. Vielen vielen Dank. - Eigentlich sowieso um den Zustand auf den Originaltext zurückzugeben? – khermancreative

+0

Ja. Siehe die Lösung unter meiner. Er/sie hat eine ternäre Anweisung eingefügt, um zwischen Text auf Klick zu wechseln. – Korgrue

+0

Verstanden! Nochmals vielen Dank. – khermancreative

0

Sie könnten .fadeIn() und .fadeOut() jQuery-Funktionen verwenden:

$(document).ready(function() { 
 
    $('.show-clients').click(function() { 
 
    //$('.more').slideToggle(400); 
 

 
    $(this).fadeOut(200, function() { 
 
     $(this).text($(this).text() == 'Show Partial Client List' ? 'Hide Partial Client List' : 'Show Partial Client List').fadeIn(200); 
 
    }); 
 

 
    return false; 
 
    }); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a href="#/" class="button solid show-clients">Show Partial Client List</a>

Verwandte Themen