JavaScript - Перейти к привязке - PullRequest
15 голосов
/ 17 апреля 2011

Я пытаюсь открыть div с помощью прыжка на якорь. Открывающаяся часть работает, но она не прыгает на названный якорь

Это мой сценарий:

<script type="text/javascript">
    function spoil(id){
        if (document.getElementById) {
            var divid = document.getElementById(id);
            divid.style.display = (divid.style.display = 'block');
            window.location = '#' + id;
        }
    }
</script>

<a href="http://example.com" onclick="spoil('thanks');" title="hello">
    <img src="images/gfx.png" alt="world" width="300" height="300"/>
</a>

Есть идеи, что с ним не так? Приветствия.

Ответы [ 2 ]

53 голосов
/ 17 апреля 2011

Вы пробовали window.location.hash = '#'+id;?

12 голосов
/ 17 апреля 2011

Похоже, вы показываете спойлер div. Если это так, вы можете прокрутить элемент в виде следующим образом:

function spoil(id) {
    var divid = document.getElementById(id);
    divid.style.display = 'block';
    divid.scrollIntoView(true);
    return false;
}
...
<a href="#" onclick="return spoil('thanks');" title="hello"><img src="images/gfx.png" alt="world" width="300" height="300"/></a>
...