I rozwiązać ten przy użyciu jQuery/javascript uruchamiając poniższy kod każdego razem moja każda strona jest ładowana:
$(document).ready(function() {
//Get CurrentUrl variable by combining origin with pathname, this ensures that any url appendings (e.g. ?RecordId=100) are removed from the URL
var CurrentUrl = window.location.origin+window.location.pathname;
//Check which menu item is 'active' and adjust apply 'active' class so the item gets highlighted in the menu
//Loop over each <a> element of the NavMenu container
$('#NavMenu a').each(function(Key,Value)
{
//Check if the current url
if(Value['href'] === CurrentUrl)
{
//We have a match, add the 'active' class to the parent item (li element).
$(Value).parent().addClass('active');
}
});
});
Ta implementacja zakłada swoją menu ma identyfikator „NavMenu” i wykorzystuje http://hostname/scriptname.php
atrybutów href tak:
<ul id="NavMenu">
<li><a href="http://localhost/index.php">Home</a></li>
<li><a href="http://localhost/smartphone.php">Smartphone</a></li>
<li><a href="http://localhost/tablet.php">Tablet</a></li>
<li><a href="http://localhost/about.php" class="active">About Us</a></li>
<li><a href="http://localhost/contact.php">Contact Us</a></li>
</ul>
przeczytać komentarze javascript, aby zobaczyć co się dzieje. Jeśli wolisz korzystać z innego układu href (jak w oryginalnym przykładzie), musisz trochę pobawić się zmienną CurrentUrl, aby uzyskać taki sam układ jak atrybuty href.
Dla mnie było to najłatwiejsze rozwiązanie, ponieważ miałem istniejące witryny z dużym menu i wieloma stronami i chciałem uniknąć konieczności modyfikowania wszystkich stron. To pozwala mi rzucić kawałek kodu javascript w pliku nagłówkowym (który był już plikiem centralnym), który rozwiązuje problem dla wszystkich istniejących stron.
Masz na myśli aktywny link?lub czy link jest inny od innych? w zależności od bieżącej strony? –
użyj $ _SERVER ['REQUEST_URI'] .. aby uzyskać aktualny link do strony – alwaysLearn
proszę podać swój adres URL, gdy jesteś na jakiejkolwiek stronie takiej jak offnungszeiten lub sauna itp. –