0

我用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>

// 标签切换

 $('#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();
    }
4

2 回答 2

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();
});
于 2013-08-23T18:00:14.277 回答
0

好的,所以我找到了决定。最好和最简单的方法是使用Bens Almans jQ 插件- hashchange 事件。

于 2013-08-24T09:24:27.523 回答