Ответить на ваш вопрос может следующий фрагмент кода (моё творение):
window.updateColours = () => {
const colours = document.querySelectorAll('[data-href]')
colours.forEach(colour => {
const href = $(colour).data('href')
const hrefParts = href.split('/')
const id = hrefParts[hrefParts.length - 1]
// ...
$(colour).on('click', () => {
history.replaceState(null, '', href) // pay attention here
// ...
$.ajax({
url: ...,
method: 'get',
success: (response) => { ... },
error: (response) => { ... }
})
})
})
}
В этом коде
data-href
это кастомный аттрибут, в котором я сохраняю данные, которые мне нужны в дальнейшем для обработки
Очень важно обратить внимание на строчку кода:
history.replaceState(null, '', href)
Это позволит вам изменять url без перезагрузки страницы и подгружать необходимые данные