Offen Header Navigation activ/current setzen eines externen Links nicht möglich.

ahahnedv

Gut bekanntes Mitglied
7. März 2007
144
0
Chemnitz
Hallo, ich suche nach einer Lösung um den Links im Header eine Farbe zu verpassen, geht ja eigentlich mit der Klasse current aber die externen Links bekommen kein current übergeben.

Benötige daher dringend eine Lösung für unseren Kunden, damit die Links nach dem anklicken anders Farbig aussehen.

Ich möchte über externe Seiten 3 Kategoriebereiche direkt als Link im Header hinterlegen.

Vielen Dank schon mal

Gruß
Andy
 

boaa-group

Sehr aktives Mitglied
28. Dezember 2007
4.932
9
Thailand, Bangkok
AW: Header Navigation activ/current setzen eines externen Links nicht möglich.

JavaScript

Code:
$('#headlinks a').click(function(e){
    $('#headlinks a.current').removeClass('current');
    $(this).addClass('current');
});

(ungetestet) auf jeden Fall ist das imo der einzige Weg der mir dazu einfällt.
 

ahahnedv

Gut bekanntes Mitglied
7. März 2007
144
0
Chemnitz
AW: Header Navigation activ/current setzen eines externen Links nicht möglich.

Code:
$('#headlinks a').click(function(e){
    $('#headlinks a.current').removeClass('current');
    $(this).addClass('current');
});

Hi, cool mind. 50%, leider funktioniert das nur solange bis die Seite neu aufgebaut wird. :(
Laut Firebug, bekommt es die Klasse current übergeben und wenn die Seite fertig ist mit laden, ist auch die Klasse wieder weg.

Liegt das an dem .removeClass?
 

boaa-group

Sehr aktives Mitglied
28. Dezember 2007
4.932
9
Thailand, Bangkok
AW: Header Navigation activ/current setzen eines externen Links nicht möglich.

Vorab eine Frage -> soweit ich das verstanden habe möchtest du das wenn ein externer Link angeklickt wird (der sich ja in einem neuen Tab/Fenster öffnet) der jeweilige Menüpunkt die Klasse current erhält? Falls das der Fall ist sollte es mit folgendem Code in der header.tpl zwischen <HEAD> und </HEAD> gehen. (Habe vergessen das die Class ja dem LI und nicht dem A Element zugewiesen wird.)
Code:
{literal}
<script type="text/java-scrip">
$(function() {
 $('#headlinks li').click(function(e){
   e.stopPropagation();
   $('#headlinks li.current').removeClass('current');
   $(this).addClass('current');
 });
});</script>{/literal}

Das ganze führt dazu, dass erst (sofern vorhanden) die Class "current" entfernt wird und dann dem aktuellen Element die Class zugewiesen wird. Natürlich geht das ganze verloren wenn der Kunde eine andere Seite im Shop aufruft, dazu müsste man die Links selbst im Template noch anpassen.
 

ahahnedv

Gut bekanntes Mitglied
7. März 2007
144
0
Chemnitz
AW: Header Navigation activ/current setzen eines externen Links nicht möglich.

Naja, fast, ich möchte manche Kategorien noch einmal oben im Header als Link haben. Das geht in dem ich die URL für die Kat. als externe Seite im Admin angebe.
Wenn ich dann oben auf den Link klicke, passiert genau das gleiche, als wenn ich links die Kategorie anklicke.
Es öffnet sich also keine neue Seite/Tab sondern im selben Fenster wird mir dann der Header, Kategoriecontent, alle Boxen, etc. ganz normal angezeigt.
Deshalb lädt sich auch die Seite neu, da jetzt ja der Inhalt der gerade angeklickten Kat. angezeigt werden soll.

Alternativ eine unelegante Notlösung könnte ein Vergleich der aktuellen Breadcrumb Urls mit der Link URL sein. Wenn die gesuchte URL gefunden wurde, übermittelt er dem li die Klasse current.

im Template dann bei Li folgenden Code einfügen
Code:
{if strpos($Link->URL, $Brotnavi[1]->url) !== false} class="current"{/if}

Aber eine Lösung über Java o. ä. wäre wesentlich genauer, gibt es da noch Möglichkeiten, dem li die Klasse zu übergeben, solange man sich in der Kat. oder einer Unterkat. befindet?
 

boaa-group

Sehr aktives Mitglied
28. Dezember 2007
4.932
9
Thailand, Bangkok
AW: Header Navigation activ/current setzen eines externen Links nicht möglich.

Naja, fast, ich möchte manche Kategorien noch einmal oben im Header als Link haben. Das geht in dem ich die URL für die Kat. als externe Seite im Admin angebe.
Wenn ich dann oben auf den Link klicke, passiert genau das gleiche, als wenn ich links die Kategorie anklicke.
Es öffnet sich also keine neue Seite/Tab sondern im selben Fenster wird mir dann der Header, Kategoriecontent, alle Boxen, etc. ganz normal angezeigt.
Deshalb lädt sich auch die Seite neu, da jetzt ja der Inhalt der gerade angeklickten Kat. angezeigt werden soll.

Alternativ eine unelegante Notlösung könnte ein Vergleich der aktuellen Breadcrumb Urls mit der Link URL sein. Wenn die gesuchte URL gefunden wurde, übermittelt er dem li die Klasse current.

im Template dann bei Li folgenden Code einfügen
Code:
{if strpos($Link->URL, $Brotnavi[1]->url) !== false} class="current"{/if}

Aber eine Lösung über Java o. ä. wäre wesentlich genauer, gibt es da noch Möglichkeiten, dem li die Klasse zu übergeben, solange man sich in der Kat. oder einer Unterkat. befindet?

Also in dem Fall ist JAVA dann nicht die beste Lösung. Hier wäre eben dein Ansatz zu verfolgen und die Abfragen die aktuell die Class "current" vergeben eben zu erweitern, dass auch noch geprüft wird ob diese Kategorie gerade aktiv ist.
 

ahahnedv

Gut bekanntes Mitglied
7. März 2007
144
0
Chemnitz
AW: Header Navigation activ/current setzen eines externen Links nicht möglich.

Also der Code von mir funktioniert schon mal.

Das Problem bei der Abfrage der aktuell aktiven Kategorie ist, dass es ja auch Unterkategorien gibt und wenn die angeklickt werden, muss es trotzdem noch gehen.
 
Ähnliche Themen

Ähnliche Themen