2017-07-10 2 views
0

Es gibt viele Beiträge zu diesem Thema bereits, aber keine, die mein Problem direkt ansprechen. Hier ist meine aktuelle Einstellung:Toggle show/hide (jQuery)

Ich habe ein div mit der ID #ptwesv;

und ein anderes div, das den Inhalt enthält, den ich anzeigen möchte, verstecken sich mit der ID #ptwest.

Die jQuery Ich verwende, ist dies:

<script> 
jQuery("#ptwesv").click(function(){ 
    jQuery("#ptwest").show(); 
}); 
jQuery("#ptwesv").click(function(){ 
    jQuery("#ptwest").hide(); 
}); 
</script> 

Dies wird die #ptwest Behälter korrekt auf Klick versteckt, aber dann nicht die conatiner nicht zeigen, wenn ich das Triggerelement erneut auf (#ptwesv). Ich gehe davon aus, dass sobald das Element ausgeblendet wurde, ein erneutes Klicken auf den Auslöser bewirkt, dass die Aktionen gegeneinander arbeiten.

Ich benutze this W3 exmaple als eine Referenz, der einzige auffällige Unterschied, den ich bemerke, ist, dass es verschiedene Trigger-Elemente für show/hide gibt.

Ist es möglich, das Ein-/Ausblenden eines Elements aus einem einzelnen Div auszulösen und wie kann ich das zum Funktionieren bringen?

+1

'jQuery ("# ptwest"). Schalten()' – tymeJV

+0

Sie Ihr erstes Klick-Ereignis zu überschreiben, wenn Sie den zweiter sind einstellen. Alle bisherigen Antworten würden funktionieren. – vi5ion

Antwort

2
jQuery("#ptwesv").click(function(){ 
    jQuery("#ptwest").toggle(); 
}); 

ist wie Sie wollen. Es schaltet das Element um. Wenn es also gezeigt wird, verbirgt es sich und umgekehrt.

Im Moment wird das Element immer ausblenden, wegen zweimal das gleiche Klickelement.

3

Da Id für das gesamte Dokument eindeutig ist. versuchen, mit toggle()

jQuery("#ptwesv").click(function(){ 
    jQuery("#ptwest").toggle(); 
}); 
+0

Ahhhh meine Antwort ist die gleiche und war 1 Minute früher .. :( –

+0

Ich würde nicht verwenden. Toggle() - wenn der Benutzer das gleiche Element schnell genug klickt, scheitert jQuery Toggle und Sie am Ende mit gemischten Ergebnissen. Ich immer Verwenden Sie .show() und .hide() in Kombination mit einem booleschen Wert, der den aktuellen Status des Elements speichert (wenn es beim Aufruf des Listeners angezeigt oder verborgen wird) – Danmoreng

+0

@RickBronger ahhh Ich hatte nicht bemerkt, dass die Abstimmung kommt Ihren Weg :) –

0

Die Toggle() Methode schaltet zwischen Verbergen() und show() für die ausgewählten Elemente.

Diese Methode überprüft die ausgewählten Elemente auf Sichtbarkeit. show() wird ausgeführt, wenn ein Element ausgeblendet ist. hide() wird ausgeführt, wenn ein Element sichtbar ist - Dies erzeugt einen Toggle-Effekt.

$("#ptwesv").click(function(){ 
     $("#ptwest").toggle(); 
    });