ich ein Webprojekt mit Node/Express/Lenker habejQuery Click-Ereignis, nachdem neue Seite geladen
ich eine klebrige Navigation auf der Seite habe, die teilweise durch einen handel gemacht wird.
Wenn ein Link angeklickt wird und die Seite geladen wird, möchte ich den aktiven Status zu dem Element ändern, auf das geklickt wurde. Ich habe sowohl .click()
als auch .on('click', child, callback)
ausprobiert. Es funktioniert, wenn ich darauf klicke, aber es wird zurückgesetzt, nachdem das DOM neu geladen wurde.
Vielen Dank für Ihre Hilfe Stackoverflow.
Hier ist meine jQuery:
//NAVIGATION ACTIVES
$('.stickynav').on('click', '.platform-nav',
function() {
$('.main-hand').removeClass("nav-active");
$('.sticky-hand').removeClass("nav-active");
$(this).addClass("nav-active");
});
$('.stickynav').on('click', '.tools-nav',
function() {
$('.main-hand').removeClass("nav-active");
$('.sticky-hand').removeClass("nav-active");
$(this).addClass("nav-active");
});
$('.stickynav').on('click', '.diensten-nav',
function() {
$('.main-hand').removeClass("nav-active");
$('.sticky-hand').removeClass("nav-active");
$(this).addClass("nav-active");
});
$('.stickynav').on('click', '.blog-nav',
function() {
$('.main-hand').removeClass("nav-active");
$('.sticky-hand').removeClass("nav-active");
$(this).addClass("nav-active");
});
und HTML (.hbs):
<div class="stickynav" data-spy="affix">
<div class="hands-connector">
<img src='/img/connector-sticky.png' />
</div>
<div class="hands-sticky">
<div class="sticky-hand platform-nav nav-active" id="platform-sticky">
<a href="/"> <img src="/img/platform-sticky.png" alt="Naar kennisplatform" />
<p>Kennisplatform</p></a>
</div>
<div class="sticky-hand tools-nav" id="tools-sticky">
<a href="/tools">
<img src="/img/tools-sticky.png" alt="Naar gratis tools" />
<p>
Tools
</p>
</a>
</div>
<div class="sticky-hand diensten-nav" id="diensten-sticky">
<a href="/diensten">
<img src="/img/diensten-sticky.png" alt="Naar diensten" />
<p>
Diensten
</p>
</a>
</div>
<div class="sticky-hand blog-nav" id="blog-sticky">
<a href="/blog?page=1">
<img src="/img/blog-sticky.png" alt="Naar blog" />
<p>
Blog
</p>
</a>
</div>
</div>
</div>
und die CSS-Klasse als Referenz (deaktiviert den Link):
.nav-active {
text-decoration:none;
color:black;
-webkit-filter: drop-shadow(1px 1px 0 blue) drop-shadow(-1px -1px 0 blue);
-ms-filter: drop-shadow(1px 1px 0 blue) drop-shadow(-1px -1px 0 blue);
filter: drop-shadow(1px 1px 0 blue) drop-shadow(-1px -1px 0 blue);
pointer-events:none;
cursor:default;
}
Sollte die Klasse beim Laden der Seite ... basierend auf der aktuellen URL geladen werden. Nach einem Klick auf einen Link ist das aktuelle Seitenskript verschwunden und es beginnt wieder auf der neuen Seite – charlietfl
Ich dachte gerade darüber nach, aber um 6:15 Uhr habe ich keine Ahnung, wie ich das machen soll. Alle Hinweise würden sehr geschätzt werden. Natürlich könnte ich immer nur die stickynav ohne eine teilweise in ihren jeweiligen Vorlagen hinzufügen und manuell die Klasse dort. Aber ich dachte, dass jQuery mir hier helfen könnte und die Wiederverwendung von Code verhindern würde. – Kyriediculous
Es gibt viele, viele ähnliche Fragen dazu, wie dies beim Laden der Seite zu tun ist. Sie vergleichen im Grunde nur die 'href' der Nav-Links mit der' location' ... wenn alle 'href' relativ sind, vergleichen Sie sie mit' location.pathname' – charlietfl