2017-10-17 2 views
3

Ich möchte nur ein Div anzeigen, wenn jemand auf "Hinzufügen" klicken. Wenn er den "Hinzufügen" -Button erneut anklickt, muss er den aktuellen ausblenden und ein anderes div anzeigen. Es muss auch die genehmigte div-Liste im oberen Bereich anzeigen. Wenn jemand auf den freigegebenen div-Bereich klickt, muss der div erneut geladen werden.Hide div und zeige ein anderes divs

enter image description here

Ich versuche auf Klick zu verstecken und zeigen, aber kein Glück. (. Ich bin etwas Neues zu jquery und ich weiß, das ist ziemlich einfach Code ist)

Hier ist die Geige Fiddle

$('.add-box').click(function() { 
 
    $('.test-div-2').show(); 
 
}); 
 

 
$('.add-box').click(function() { 
 
    $('.test-div-1').hide(); 
 
});
.test-div-1, 
 
.test-div-2, 
 
.test-div-3 { 
 
    display: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="test-div-1">1</div> 
 
<div class="test-div-2">2</div> 
 
<div class="test-div-3">3</div> 
 

 
<a class="add-box">Add</a>

+0

Sie haben nicht hinzugefügt jQuery-Datei in Ihrer Geige –

+0

Sie haben keinen Code in Geige geschrieben. https://jsfiddle.net/1Lqj9e5h/3/ –

+0

Also, auf den ersten Klick wird Test-Div-1 erscheinen.Wenn ich wieder klicke, wird Test-Div-2 angezeigt? –

Antwort

2

unten Dinge tun: -

1 Fügen Sie vor dem Skriptcode die jQuery-Bibliothek hinzu.

2.Schreiben Sie Ihren Code innerhalb $(document).ready(function(){..}); (benötigt, wenn Skript-Code über dem HTML hinzugefügt wird. Wenn Script-Code am unteren Rand der Seite hinzugefügt wird, dann ist ein Umbruch nicht erforderlich).

3.Do show(),hide() in einem Klick selbst.

$(document).ready(function(){ 
 
    $('.add-box').click(function() { 
 
    $('.test-div-2').show(); 
 
    $('.test-div-1').hide(); 
 
    }); 
 
});
.test-div-1, 
 
.test-div-2, 
 
.test-div-3{ 
 
    display:none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="test-div-1">1</div> 
 
<div class="test-div-2">2</div> 
 
<div class="test-div-3">3</div> 
 

 
<a class="add-box">Add</a>

Fiddle Beispiel: - https://jsfiddle.net/rrj1818a/

Hinweis: -

Wenn Sie one-by-one zu zeigen, dann wie unten tun: -

https://jsfiddle.net/87re6avo/

+1

Ab jQuery 3.0 wird '$ (document) .ready (handler)' nicht mehr empfohlen. Verwenden Sie '$ (Handler)' – H77

+0

Ich muss eins nach dem anderen zeigen. Ich denke, das ist die Sache, die ich will https://jsfiddle.net/87re6avo/ Wie kann ich zusätzliche divs in top wie mein screenshot zeigen? –

+0

@MarkNsu Ich habe einen Notizbereich mit einem Beispiellink hinzugefügt. Hast du das überprüft? irgendein Problem dort? –

0

die Antwort nach Ihrem Kommentar

Ich denke, das ist das Ergebnis Sie nach meinem Verständnis Ihrer Frage suchen Edited.

Dabei Ihre jeder Klick wird verstecken die vorherige div und zeigen die nächste div mit einer fortlaufenden Nummer.

Auf dem ersten Klick, wird es die test-div-1 dann auf der nächsten zeigen sie test-div-2 zeigen und es geht so weiter und ich habe auch einen if Zustand zu überprüfen, ob der erhöhte div vorhanden, so wird es nicht schaffen einen Fehler angebracht indem du alle div versteckst.

Ich habe JQuery an dieses Beispiel angehängt, also vergessen Sie nicht, das in Ihren Code einzufügen.

var d1 = ''; 
 

 
$('.add-box').click(function() { 
 
    d1++ 
 
    var d2 = +d1 - 1 
 
    if ($('.test-div-' + d1).length > 0) { 
 
    var clone = $('.test-div-' + d1).clone() 
 
    $('.test-div-' + d2).hide(); 
 
    $('.test-div-' + d1).show(); 
 
    $('.top-header').append(clone); 
 
    $('.top-header').find('.test-div-' + d2).show(); 
 
    } 
 
});
.test-div-1, 
 
.test-div-2, 
 
.test-div-3 { 
 
    display: none; 
 
} 
 
.top-header{ 
 
height:100px; 
 
width:100%; 
 
background:pink; 
 
} 
 
.top-header div{ 
 
display:block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="top-header"> 
 

 
</div> 
 

 

 
<div class="test-div-1">1</div> 
 
<div class="test-div-2">2</div> 
 
<div class="test-div-3">3</div> 
 

 
<a class="add-box">Add</a>

SECOND SNIPPET mit anderen Inhalten hinzugefügt (wie Schließen-Schaltfläche)

Sie können den Rest der notwendigen Stil.

var d1 = ''; 
 

 
$('.add-box').click(function() { 
 
    d1++ 
 
    var d2 = +d1 - 1 
 
    if ($('.test-div-' + d1).length > 0) { 
 
    var clone = $('.test-div-' + d1).clone().append('Item <a href="javascript:void(0);">X</a>') 
 
    $('.test-div-' + d2).hide(); 
 
    $('.test-div-' + d1).show(); 
 
    $('.top-header').append(clone); 
 
    $('.top-header').find('.test-div-' + d2).show(); 
 
    } 
 
});
.test-div-1, 
 
.test-div-2, 
 
.test-div-3 { 
 
    display: none; 
 
} 
 
.top-header{ 
 
height:100px; 
 
width:100%; 
 
background:pink; 
 
} 
 
.top-header div{ 
 
display:block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="top-header"> 
 

 
</div> 
 

 

 
<div class="test-div-1">1</div> 
 
<div class="test-div-2">2</div> 
 
<div class="test-div-3">3</div> 
 

 
<a class="add-box">Add</a>

Hoffnung war hilfsbereit.

+0

Es funktioniert. Wie kann ich zusätzliche divs wie meinen Screenshot oben anzeigen? –

+0

@MarkNsu möchtest du jedes Div, das du hinzugefügt hast, oben anzeigen lassen? – weBBer

+0

Ja. Wenn jemand oben auf das div klickt, muss es auch angezeigt werden. –

0
<div class="test-div active">1</div> 
<div class="test-div">2</div> 
<div class="test-div">3</div> 
<a class="add-box">Add</a> 



$('.add-box').click(function(e) { 
e.preventDefault(); 
var $current = $('.test-div.active'); 
var $next = $current.next(); 

$current.removeClass('active'); 



if(!$next.length) { 
$next = $('.test-div').first(); 


} 



$next.addClass('active'); 

}); 
+0

Ich Schleife nur, wenn Sie letzten 'div erreichen, falls Sie nicht wollen, können Sie es durch' return' innerhalb 'if' blockieren. – knightMove

Verwandte Themen