在链接中使用哈希时取消页面滚动。

时间:2013-08-23 17:56:33

标签: javascript jquery

我使用jQuery制作了标签。我需要能够链接到确切的标签。它完成了。(下面的代码)我遇到的问题是切换选项卡后无法阻止页面滚动。如何禁用滚动但仍使用哈希?

<ul class="tabs group">
    <li>
    <a id="komp-link" class="switch" href="#komplekti">Komplekti</a>
    </li>
    <li>
    <a id="intern-link" class="switch" href="#internets">Internets</a>
    </li>
    <li>
    <a id="iptv-link" class="switch" href="#iptelevizija">IP Televizija</a>
    </li>
</ul>

<div id="komplekti">content 1</div>
<div id="internets">content 2</div>
<div id="iptelevizija">content 3</div>

// Tabs Switch

 $('#komp-link').click(function(){
        $('#komplekti').show();
        $('#internets').hide();
        $('#iptelevizija').hide();
    });
    $('#intern-link').click(function(){
        $('#komplekti').hide();
        $('#internets').show();
        $('#iptelevizija').hide();
    });
    $('#iptv-link').click(function(){
        $('#komplekti').hide();
        $('#internets').hide();
        $('#iptelevizija').show();
    });

//启用链接到精确标签

if(window.location.hash) {

        var getHash = window.location.hash;
        console.log(getHash)
        $(getHash).show();
    }

2 个答案:

答案 0 :(得分:1)

使用event.preventDefault()

$('#komp-link').click(function(e){
    e.preventDefault();
    //...
});

你应该能够简化你的代码..

<ul class="tabs group">
    <li>
    <a id="komp-link" class="switch" href="#komplekti">Komplekti</a>
    </li>
    <li>
    <a id="intern-link" class="switch" href="#internets">Internets</a>
    </li>
    <li>
    <a id="iptv-link" class="switch" href="#iptelevizija">IP Televizija</a>
    </li>
</ul>

<div id="komplekti" class="tab">content 1</div>
<div id="internets" class="tab">content 2</div>
<div id="iptelevizija" class="tab">content 3</div>

...

$('.switch').click(function(e) {
    e.preventDefault();
    $('.tab').hide();
    $($(this).href()).show();
});

答案 1 :(得分:0)

好的,我找到了决定。 最好的&amp;最简单的方法是使用Bens Almans jQ plugin - hashchange事件。