当浏览器上的后退按钮到达主页时,我需要删除Class

I need to removeClass when hitting the back button on a browser once it reaches the homepage

本文关键字:Class 删除 主页 浏览器 按钮      更新时间:2023-09-26

我的网站上有hasher.js,我不完全理解它,但这里有我的javascript文件中使用的任何引用。

function activateKeyNav()
    {
        // Description: register keypress event on document object
        jQuery(document).on('keydown', function(event) {
            switch(event.which)
            {
                case 27: // escape
                    hasher.setHash();
                    $('body').removeClass('projectLoaded');
                    $('#arrow-nav').removeClass('slideIn');
                    $('#backtoprojects').addClass('is-hidden');
                    $('#project-close').addClass('is-hidden');
                    break;
            }
        });
    }
function goToNextProject()
    {
        if(projects[currentProject].rght)
            updateHash(projects[currentProject].rght);
    }
    function goToPrevProject()
    {
        if(projects[currentProject].lft)
             updateHash(projects[currentProject].lft);
    }
function updateHash(project)
    {
        hasher.setHash(project);
    }
$('#backtoprojects a').on('click', function(){
        hasher.setHash();
        $('#backtoprojects').addClass('is-hidden');
        deactivateKeyNav();
    });
$('#project-close').on('click', function(){
        hasher.setHash();
        $('#project-close').addClass('is-hidden');
    });
$('[data-type="projectLoader"]').click(function() {
        var proj = $(this)[0].getAttribute('data-project');
        // loadProject(proj)
        $('#arrow-nav').addClass('slideIn');
        updateHash(proj);
        return false;
        // return loadProject(proj);
    });
crossroads.addRoute('/{project}', function(project) {
        console.log(project);
        loadProject(project);
        currentProject = project;
        deactivateKeyNav();
        activateKeyNav();
    });
    crossroads.addRoute('/', function() {
        $('#backtoprojects').click();
    });
    crossroads.routed.add(console.log, console);
    function parseHash(newHash, oldHash) {
    crossroads.parse(newHash);
    };
    hasher.initialized.add(parseHash); //parse initial hash
    hasher.changed.add(parseHash); //parse hash changes
    hasher.init(); //start listening for history change

我不认为任何html是必要的,因为它与浏览器和退格有关。

当我在一个项目中时,它会将/#/项目名称添加到url中。当我按下退格键或在浏览器中按下后退键时,它会删除"项目名称",但你仍然留在项目中。它应该加载回主页。

有可能做document ready吗?还是removeClass?如果我能做$('body').removeClass('projectLoaded');,这将扼杀项目并让你回到主页。

这是一个活生生的例子。

更新#1这对退格键有效。我如何将案例27和案例8结合起来做同样的事情而不必欺骗代码?code 27 && code 8?我仍然需要一个浏览器中后退按钮的解决方案。

case 8: // backspace
    $('body').removeClass('projectLoaded');
    $('#arrow-nav').removeClass('slideIn');
    $('#backtoprojects').addClass('is-hidden');
    $('#project-close').addClass('is-hidden');
    break;

更新#2

window.history.back();
window.history.go(-1);

我现在意识到,这些是行不通的。我可能是4个项目深入历史。我不知道如何瞄准这个。

通过使用js,我实现了这一点。我也不需要瞄准退格键。

crossroads.addRoute('/', function() {
        $('#backtoprojects').click();
        $('body').removeClass('projectLoaded');
        $('#arrow-nav').removeClass('slideIn');
        $('#backtoprojects').addClass('is-hidden');
        $('#project-close').addClass('is-hidden');
    });