Я использую следующий код для добавления хэш-тега в конец URL. Тем путем кто-то может скопировать тот URL и забрать их к той странице с определенными видимыми отделениями.
$("a.live").click(function() {
window.location.hash = 'live';
$("#live).slideDown();
});
В этом примере у меня есть отделение, названное 'живым', который будет slideDown, когда на ссылку нажмут, и '#live, ' добавил к URL. Затем у меня есть код, который проверяет хэш-теги, когда страница загружается для показа надлежащих отделений.
Моя проблема, как я препятствую тому, чтобы браузер перешел 'живому' отделению, после того как это называют? Я не хочу, чтобы страница прокрутила вниз отделению, просто хотела открытый и хэш-тег, добавленный, таким образом, человек мог скопировать его и возвратиться к той странице с тем показом отделения.
Какие-либо подсказки?
Спасибо!
Попробуйте следующее:
$("a.live").click(function() {
window.location.hash = 'live';
$("#live").slideDown();
return false; // this will prevent default action
});
Это зависит от обстоятельств. Если вы хотите предотвратить его при щелчке по привязке, используйте следующее:
$("a.live").click(function(e) {
e.preventDefault(); // Prevents browsers default action
window.location.hash = 'live';
$("#live").slideDown();
});
Если вы хотите предотвратить его прокрутку до хэша при загрузке страницы, я не уверен, как вы это предотвратите.
Я предполагаю, что у вас есть какой-то код в событии готовности документа, который вы используете для открытия div, как вы говорите? Если это так, я бы предложил вам добавить префикс к ID в хэше (например, #_live), чтобы ID не был найден в документе и, следовательно, не позволял браузеру автоматически прокручивать страницу до этого элемента, а затем изменить ваш код, чтобы удалить префикс, когда вы его откроете.
Я предлагаю этот "хак", потому что не думаю, что вы можете предотвратить такое поведение браузера с помощью JavaScript, по крайней мере, не надежно для кросс-браузерного решения.