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

Javascript 当点击浏览器上的后退按钮到达主页时,我需要删除类,javascript,Javascript,我在我的网站上有,我不完全理解它,但这里有我的javascript文件中使用的任何引用 function activateKeyNav() { // Description: register keypress event on document object jQuery(document).on('keydown', function(event) { switch(event.which) {

我在我的网站上有,我不完全理解它,但这里有我的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中。当我点击backspace或在浏览器中按back键时,它会删除“项目名称”,但您仍然保留在项目中。它应该加载主页回来

是否可以将
文档准备就绪
?还是
removeClass
?如果我能做
$('body').removeClass('projectLoaded')这将终止项目并将您带回主页

这是现场直播

更新#1 这适用于backspace键。我如何结合使用case27和case8来做同样的事情,而不必重复代码<代码>代码27和代码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');
    });

和js混在一起我让它工作。我也不需要针对退格按钮

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

ESC键正是这样做的。也许它的代码可以用于相同的效果?@BlazeSahlzen是的,removeClass可以做到这一点,但是如果可以将它映射到键盘的backspace,浏览器的back按钮也可以做到这一点吗?ESC键就是这样做的。也许它的代码可以用于相同的效果?@BlazeSahlzen是的,removeClass可以做到这一点,但是如果可以将它映射到键盘的backspace,那么浏览器的back按钮也可以这样做吗?