Почему не открывается модальное окно при передаче 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;
→ Ссылка