デフォルトで表示されるフロントページと、関連するリンクが表示されたときに表示される子ページフロントページをクリックします。クリック時に同じIDの要素にクラスを追加する、ページ更新時のクラスを覚えている
私は何を達成しようとしていることpage-link
要素がクリックされたときに、クラスactive-page
は、同じIDを持つ内側のページに追加されていることである、とintro
セクションでは、アクティブなページがに設定されている& off-canvas
が追加されたクラスを、持っていますlocalStorage - 何らかの理由でページが更新されると、最後に表示されたページが表示されます。
lnk-rtn-home
要素をクリックすると、inner-page
はアクティブページクラスを失い、front-page
はオフキャンバスクラスを失います。同様に、これはlocalStorageを更新するはずです。
次のようにHTMLの構造は次のとおりです。
<body>
<div class="container">
<section id="intro" class="front-page row">
{{ content }}
<a data-id='about-me' class='page-link'>About Me</a>
{{ more content }}
<a data-id='contact' class='page-link'>Contact</a>
</section>
<section id="about-me" class="inner-page row">
{{ content }}
<a class='lnk-rtn-home'>Return Home</a>
</section>
<section id="contact" class="inner-page row">
{{ content }}
<a class='lnk-rtn-home'>Return Home</a>
</section>
</div>
</body>
現在のJSはこれで遊んでのいかなる量は、それが働いていない持っている、そしてこの段階で、私は迷ってしまいました
$(document).ready(function(){
var activePageSet = localStorage.getItem('current-page');
// Check if an active page has been set
if (activePageSet) {
$('#' + activePageSet).addClass('active-page');
$('#intro').addClass('off-canvas');
}
// Links to inner pages
$('.page-link').click(function() {
var currentPage = $(this).data("id");
$('#' + currentPage).addClass("active-page");
$('#intro').addClass('off-canvas');
localStorage.setItem('current-page', JSON.stringify(currentPage));
});
// Link to return home
$('.lnk-rtn-home').click(function() {
if ($('.inner-page').hasClass('active-page')) {
$(this).removeClass('active-page');
localStorage.removeItem('current-page');
}
$('#intro').removeClass('off-canvas');
});
});
に立っそれを達成する方法について。
**さんは一意である必要がありますIDは、 ''データid'の 'dataset'に一致するようにid'を意味していますか? – NewToJS