Объясню, что делаете не так. Когда вы кликаете по ссылке, происходит т.н. «всплытие события». Т.е. клик по ссылке --> перехода не произошло --> клик по родителю ссылки --> перехода не произошло --> клик по родителю родителя ссылки --> ... ---> клик по всей области документа. Сейчас вы добавили href = "#" , таким образом происходит переход по ссылке-якорю и всё нормально до тех пор, пока вам не понадобится открыть модальное окно где-нибудь внизу документа, в том случае вы увидите, что весь документ у вас прокручивается вверх. Попробуем оптимизировать:
/*
это фрагмент не нужен, на самом деле. просто пропишите в css display:none для этих элементов, и добавьте класс visible с display:block;
*/
//удалить
$(document).ready(function() {
document.getElementById('modal_overlay_bg').style.display='none';
document.getElementById('modal_sms').style.display='none';
})
//удалить
//Идем далее
/* открываем окно*/
$("html").on("click", ".open_modal_sms",function(e) {
$('#modal_overlay_bg').addClass('visible');
$('#modal_sms').addClass('visible');
e.stopPropagation(); //останавливаем всплытие
});
/* закрываем окно */
$('html').on('click', function() {
$('.visible').removeClass('visible');
});
Посмотрим CSS:
#modal_overlay_bg,
#modal_sms {
display:none;
}
#modal_overlay_bg.visible,
#modal_sms.visible {
display:block;
}
Ну и HTML для вызова:
<!-- И ни в коем случае не вставляйте li в ссылку, как сделано у вас, это bad practice -->
<li><a href="#" class="open_modal_sms">Сообщения</a></li>