@Grizar

Обновить страницу по клику?

я ИМЕЮ кнопку которая по клику обновляет страницу.
Вчера она работала а сегодня чета не хочет.
что не так ?
document.querySelectorAll('.woosb-products').forEach(n => {
  n.insertAdjacentHTML('afterend','<button id="b_epr" >обновить</button>');
});
$('#b_epr').click(function() { location.reload(true);
});


Перестает работать при добавлении к кнопке стилей
#b_epr {
    position: fixed;
    bottom: 56px;
    right: 0;
    MARGIN-RIGHT: 1PX;
    z-index: 2020;
    border-radius: 0;
    background: #f49f36;
    color: white;
    padding: 10px 20px;
    outline-color: #ffffff !IMPORTANT;
    TEXT-SHADOW: -1px 0PX #565353, 0 1px #585050, 1px 0 #6b6262, 0 -1px #635555;
}


Как исправить
  • Вопрос задан
  • 70 просмотров
Решения вопроса 1
sergiks
@sergiks Куратор тега JavaScript
♬♬
повилось больше 1 продукта, и всё, крах: id ведь на странице должен быть уникальным, а у вас их может быть и больше 1.

Замените id на класс.
Что-то типа
const btnClassName = "btn_refresh";

document.querySelectorAll('.woosb-products').forEach(n => {
  n.insertAdjacentHTML('afterend', `<button class="${btnClassName}">обновить</button>`);
});

document.addEventListener('click', (event) => {
  if (event.target.classList.contains(btnClassName)) {
    window.location.reload();
  }
});


Upd. Так как выяснилось, что кнопка должна быть только одна, лучше только одну и создавать:
const product = document.querySelector('.woosb-products');
if (product) {
  const button = document.createElement('button');
  button.id = 'b_epr';
  button.innerText = 'обновить';
  button.addEventListener('click', () => window.location.reload());
  product.insertAdjacentElement('afterend', button);
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ERrorMAKros
@ERrorMAKros
Front-End/Back-End Developer
$('#b_epr').click( function() {

/* 
в контексте функции указатель на location доступен? 
Или undefied? 
*/ 

location.reload( true ) ;  // Boolean( location ) - ???

/* используйте */
window.location.reload(true);

});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы