Мне нужно, чтобы я мог открывать модал jQuery UI с идентификатором на странице, когда идентификатор модала передается в URL страницы. Например:
http://mysite.com/visit.html#directions
# directions - это идентификатор DIV в самом низу страницы, прямо перед закрывающим элементом BODY. Он создается как диалоговое окно jQuery UI при загрузке страницы, затем я запускаю функцию, чтобы проверить текущий URL-адрес для идентификатора модального устройства. Если URL-адрес содержит идентификатор модального окна, модальное окно открывается.
Вот как выглядит моя функция автоматического открытия:
function autoOpenModal() {
if ( document.location.href.indexOf('#') ) {
var uriParts = document.location.href.split('#');
var hashID = '#' + uriParts[1];
if ( $(hashID) && $(hashID).hasClass('dialog')) {
$(hashID).dialog('open');
}
}
}
Проблема, с которой я столкнулся, заключается в том, что браузер автоматически прокручивает страницу до идентификатора в самом низу страницы до того, как модальное окно открывается. Поэтому, когда пользователь закрывает модальный режим, он находится внизу страницы (что мне кажется «сломанным»).
Может кто-нибудь сказать мне, как я могу остановить браузер от автоматической прокрутки вниз к идентификатору, пожалуйста? Я посмотрел на event.preventDefault()
, но безуспешно; Я не уверен, где или как использовать это в цепочке событий.