Autor |
Nachricht |
Vektorpate
Threadersteller
Dabei seit: 05.09.2006
Ort: Hamburg
Alter: -
Geschlecht:
|
Verfasst Mo 22.11.2010 13:02
Titel jQuery Problem |
|
|
Hi,
ich versuche grade eine Navigation per jQuery dazu zu bringen, dass
bei einem klick auf <a> die Klasse .active hinzugefügt wird, und sich bei einem
Klick auf ein anderes <a> innerhalb der Navigation die Klasse .active des vorherigen
Links verschwindet und sich auf das neu geklickte setzt.
Es gibt nur ein index Dokument in dem 4 verschiedene inhalte per toggle ein- und ausblenden.
Das habe ich auch bereits hinbekommen, bei der Navigation hapert es dann aber.
Über Rat wäre ich dankbar
Code: | $('.navi li a').click(function () {
$(this).show();
$(this).addClass('active');
$('active').hide();
$('active').removeClass('active');
}); |
|
|
|
|
|
Zeithase
Dabei seit: 09.05.2005
Ort: Erfurt
Alter: 39
Geschlecht:
|
Verfasst Mo 22.11.2010 13:05
Titel
|
|
|
1. Logikfehler - erst hinzufügen und dann alle entfernen macht wenig Sinn.
2. Selektor-Fehler - sollte $('.active') heißen.
3. Pack das doch mal mit allem zusammen irgendwohin.
|
|
|
|
|
Anzeige
|
|
|
Vektorpate
Threadersteller
Dabei seit: 05.09.2006
Ort: Hamburg
Alter: -
Geschlecht:
|
Verfasst Mo 22.11.2010 13:18
Titel
|
|
|
Hier
Sorry für den Arcor Server.
Und ja, ich bin jQuery Anfänger
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Mo 22.11.2010 13:36
Titel
|
|
|
punkt 3 haste ja schon mal. punkt 1 und 2 waren aber wichtiger
Zeithase hat geschrieben: | 1. Logikfehler - erst hinzufügen und dann alle entfernen macht wenig Sinn.
2. Selektor-Fehler - sollte $('.active') heißen.
|
du gibst this die klasse active, und räuberst sie danach wieder.
$(this).addClass('active');
$(this).show();
müssten also erst kommen, wenn du das "alte" active vom klick vorher entfernt hast... (mit den richtigen selectoren)
|
|
|
|
|
Vektorpate
Threadersteller
Dabei seit: 05.09.2006
Ort: Hamburg
Alter: -
Geschlecht:
|
Verfasst Mo 22.11.2010 13:42
Titel
|
|
|
Erscheint mir logisch.
Code: | $('active').hide();
$('active').removeClass('active');
$(this).addClass('active');
$(this).show();
});
|
So? Dann bleiben die actives allerdings geöffnet.
Sie sollen sich ja schließen bei klick auf ein anderen Punkt.
|
|
|
|
|
snuwie
Dabei seit: 06.07.2010
Ort: -
Alter: -
Geschlecht:
|
Verfasst Mo 22.11.2010 13:54
Titel
|
|
|
ja, weil du bei klick ja beides durchführst ... im übrigen verwechselst du anscheinend ids und klassen
eine id kommt nur einmal pro seite vor, klassen können öfter vorkommen ...
ich würde es wohl so aufbauen:
Code: | <ul>
<li><a href="#tab1">Tab 1</a></li>
<li><a href="#tab2">Tab 2</a></li>
...
</ul>
<div id="tab1" class="tabs">
</div>
<div id="tab2" class="tabs">
</div>
...
$('.tabs').hide();
$('ul li a').click(function(){
$('ul li a').removeClass('active');
$('.tabs').hide();
speichershizzle = $(this).attr('href');
$(this).addClass('active');
$(speichershizzle).show();
}); |
http://jsfiddle.net/pjPUb/
wahlweise könntest du auch das jquery ui einsetzen ... http://jqueryui.com/demos/tabs/
Zuletzt bearbeitet von snuwie am Mo 22.11.2010 13:55, insgesamt 1-mal bearbeitet
|
|
|
|
|
pixelpapst303
Dabei seit: 06.07.2006
Ort: hamburg
Alter: 50
Geschlecht:
|
Verfasst Mo 22.11.2010 14:10
Titel
|
|
|
Pixelpate hat geschrieben: | Erscheint mir logisch.
Code: | $('active').hide();
$('active').removeClass('active');
$(this).addClass('active');
$(this).show();
});
|
So? Dann bleiben die actives allerdings geöffnet.
Sie sollen sich ja schließen bei klick auf ein anderen Punkt. |
du "selektierst" falsch:
$('.active').hide();
|
|
|
|
|
Vektorpate
Threadersteller
Dabei seit: 05.09.2006
Ort: Hamburg
Alter: -
Geschlecht:
|
Verfasst Mo 22.11.2010 14:36
Titel
|
|
|
Alles klar, ich probiers mal.
Danke!!
Zuletzt bearbeitet von Vektorpate am Mo 22.11.2010 14:43, insgesamt 2-mal bearbeitet
|
|
|
|
|
|
|
|
Ähnliche Themen |
Problem mit CSS & JQuery
problem mit jquery und ie
jquery FF und IE8 Problem
jquery: Problem mit Safari
Problem mit Jquery und dem Ipad
Problem mit Jquery Akkordeon Menü
|
|