Активировать привязку к URL, но не прокручивать к ней?

Метод Java finalize() не является деструктором и не должен использоваться для обработки логики, от которой зависит ваше приложение. Спецификация Java заявляет, что нет гарантии, что метод finalize вызывается вообще во время жизни приложения.

То, что вы, вероятно, хотите, это комбинация finally и метода очистки, как в :

MyClass myObj;

try {
    myObj = new MyClass();

    // ...
} finally {

    if (null != myObj) {
        myObj.cleanup();
    }
}
6
задан DisgruntledGoat 5 September 2009 в 23:24
поделиться

5 ответов

Я играл с этим некоторое время, потому что сначала я не поверил вам (я использую плагин истории jQuery , чтобы добиться аналогичного поведения).

И я в тупике. Я не думаю, что ты сможешь. Что вы могли бы сделать в качестве обходного пути, так это использовать javascript, чтобы установить хеш, ОТЛИЧНЫЙ от того, что на самом деле находится на странице . А затем используйте javascript при загрузке, чтобы прочитать хеш и заполнить правильный контент. Я делаю это на своем сайте . Таким образом, в этом сценарии пользователи без javascript будут прокручиваться, пользователи с javascript сохранят цепочку истории, и это становится дурацким только тогда, когда люди без отправки ссылок людям с (или наоборот).

5
ответ дан 17 December 2019 в 04:49
поделиться

Я нашел хорошее решение здесь: http://lea.verou.me/2011/05/change-url-hash-without-page-jump/

Использование preventDefault на, например, событии

$('a').click((event) => {
    event.preventDefault();
    let hash = $(event.target).attr('href');
    history.pushState(null, null, hash);
    // The url now has a hash but the page won't jump to the given anchor
    // .. handle the rest (an easing scroll for example)
}
щелчка
0
ответ дан 17 December 2019 в 04:49
поделиться
var Namespace = {
  var timer, scroll;
}

// Onclick
Namespace.scroll = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;
Namespace.timer = setInterval(function() { scrollTo(0, Namespace.scroll) }, 100);
location.hash = this.href;
clearInterval(Namespace.timer);
0
ответ дан 17 December 2019 в 04:49
поделиться

Не могли бы вы иметь какой-нибудь Javascript, который изменил бы имена привязок, установил window.location.hash, а затем снова изменил имена привязок?

(Я подтвердил, что andynormancx прав, и установка window.location.hash прокручивает представление, но мне лень проверять, если создание привязки в DOM к window.location.hash также прокручивается.)

0
ответ дан 17 December 2019 в 04:49
поделиться
window.location.hash = 'tab1';

может работать.

-1
ответ дан 17 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: