Почему не открывается модальное окно при передаче get-параметра на страницу?
Допустим у меня есть ссылка: <a id="data-trigger">Link</a>. При клике на нее должно всплывать модальное окно, в которое я передаю get-параметр id с неким значением. Вот так выглядит функция открытия окна:
let openModal = function() {
modal.classList.add('is-open'); // modal - контейнер модального окна
var value = document.querySelector("[name=t9]:checked").value; // выбор значения из checkbox
var strLink = "?id=" + value;
document.getElementById("data-trigger").setAttribute("href", strLink);
}
Проблема в том, что когда вызывается эта функция, то сначала обрабатывается выражение открытия окна modal.classList.add('is-open');, а уже затем выражение добавления параметра в адресную строку. Одновременно эти выражения обрабатываться не могут: когда открывается окно, то пропадают параметры из адресной строки, когда появляются параметры - пропадает окно. Как это исправить?
Ответы (1 шт):
вы в уже открытом окне меняете атрибут но не осуществляете переход. Вам нужно открывать вот так:
let openModal = function() {
var value = document.querySelector("[name=t9]:checked").value; // выбор значения из checkbox
var strLink = "?id=" + value;
window.location.href = strLink;
}
или
.setAttribute("href", strLink);
заменить на
.location.href = strLink;