【发布时间】:2017-11-28 04:58:50
【问题描述】:
我有一个使用 Node/Express/Handlebars 的网络项目
我在侧面有一个粘性导航,它是通过部分手把呈现的。
当单击链接并加载页面时,我希望活动状态更改为被单击的元素。我已经尝试过 .click() 和 .on('click', child, callback) 。当我单击它时它可以工作,但在 DOM 重新加载后它会重置。
感谢您对 Stackoverflow 的帮助。
这是我的 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");
});
和 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>
以及供参考的 CSS 类(禁用链接):
.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;
}
【问题讨论】:
-
应该在页面加载时添加类...基于当前加载的 url。单击链接后,当前页面脚本消失了,它在新页面上重新开始
-
我刚才在想这个,但是在早上 6:15 我不知道该怎么做。任何指针将不胜感激。当然,我总是可以在它们各自的模板中添加不带部分的stickynav,然后手动将类放在那里。但我认为 jQuery 可能能够帮助我并防止重复使用代码。
-
关于如何在页面加载时执行此操作有很多类似的问题。您基本上只需将导航链接的
href与location进行比较...如果所有href都是相对的,则将它们与location.pathname进行比较
标签: jquery html css handlebars.js