• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Hide/Show höchste und nächste

SimoNxD

Mitglied
Hallo Leute.

Ich hab 3 Divs
HTML:
<div id="js_news1">
Text 1
</div>
<div id="js_news2">
Text 2
<input type="submit" class="left" id="1">
</div>
<div id="js_news3">
Text 3
<input type="submit" class="left" id="2">
</div>

Jetzt möchte ich das wenn man den Submit butten ´klickt, das jeweilige das DIV öffnet welche ID der button hat.
Als bsp:

<input type="" class="left" id="2"> öffnet dann <div id="js_news2"> und schließt dann direkt <div id="js_news3">

Mein Ansatz:

$(document).ready(function() {
$('.left').click(function(){
$('#js_news' + this.id+1).hide(700);
$('#js_news' + this.id).show(700);
});
});
Aber leider klappt das nicht :/

MfG
 
Werbung:
Mal ne Frage. Sollen immer alle News geschlossen werden außer das aktuell angeklickte? Das würde die Sache leichter machen. Dann gebe den Divs eine Klasse und schließe alle und dann offnest du nur das eine.

$('#js_news' + this.id+1)
Kann glaub ich nicht funktionieren. Probiert mal das
$('#js_news' + (parseInt(this.id, 10)+1))
 
Ah, deins hat net geklappt, aber es hat mir nen denkanstoß gegeben

$('.left').click(function(){
$('#js_news' + ((this.id)-1)).hide(700);
$('#js_news' + this.id).show(700);
});

so ist es jetzt geregelt und es funktioniert.

Jetzt wäre noch die Frage, wie du oben schon fragtest:

Wie krieg ich es hin, das beim Seitenaufruf immer nur ein Div angezeigt wird und zwar das mit der höchsten ID
 
Zuletzt bearbeitet:
Werbung:
Wie krieg ich es hin, das beim Seitenaufruf immer nur ein Div angezeigt wird und zwar das mit der höchsten ID

Stehen die Divs alle untereinander?
Geb deinen News divs eine CSS Klasse wie newsDiv und dann kannst du so etwas machen:
Code:
$(".newsDiv").hide();
$(".newsDiv").last().show(700);

Das mit dem Id Konstrukt würde ich mir sowieso noch einmal überlegen.
Wenn die Divs in aufsteigender Reihenfolge stehen, brauchst du garkeine Ids zu vergeben.
Dann geht das halt so:
Code:
// Öffnet den 3. div
$($(".newsDiv").get(2)).show(700);
 
Zurück
Oben