根据点击事件修改网址



我有一系列divs,当点击它时,它基本上是一个模态。模式具有显示在 URL 中的data-attribute。我遇到的问题是当我关闭模态时,url 仍然具有data-attribute哈希,它不会恢复,我需要它。

这是 js:

$('[data-agent]').click(function() {
        var element = $(this);
        var target = element.data('agent');
        $('body').addClass('agentLoaded');
        $('[data-agent-target]').not('[data-agent-target="'+target+'"]').removeClass('active');
        $('[data-agent-target="'+target+'"]').addClass('active');
        window.location.hash = 'agent='+target;
        return false;
    });
    if(document.location.hash){
        var hash = document.location.hash.split('#')[1];
        hash = hash.replace('agent=', '');
        if(hash && $('[data-agent-target="'+hash+'"]').length) {
            $('[data-agent="'+hash+'"]').trigger('click');
        }
    }
    $('.close').click(function() {
        $('[data-agent-target]').removeClass('active');
        $('body').removeClass('agentLoaded');
        return false;
    });

[编辑] 请参阅代码中的问题

$('[data-agent]').click(function() {
    var element = $(this);
    var target = element.data('agent');
    $('body').addClass('agentLoaded');
    $('[data-agent-target]').not('[data-agent-target="'+target+'"]').removeClass('active');
    $('[data-agent-target="'+target+'"]').addClass('active');
    window.location.hash = 'agent='+target;
    return false;
});
if(document.location.hash){ /* What is this for ? */
    var hash = document.location.hash.split('#')[1];
    hash = hash.replace('agent=', '');
    if(hash && $('[data-agent-target="'+hash+'"]').length) {
        $('[data-agent="'+hash+'"]').trigger('click');
    }
}
$('.close').click(function() {
    $('[data-agent-target]').removeClass('active');
    $('body').removeClass('agentLoaded');
    return false;
});

最新更新