Добрый день!
Обучаюсь JavaScript.
Есть такой урок по history.pushState()
https://youtu.be/sAjAUmtGylY?t=7m20s
В нем мы меняем url при нажатии на элемент меню, причем без хэша (#)
<ul class="nav">
<li><a href="hi">Hello</a></li>
<li><a href="bye">Goodbye</a></li>
<li><a href="okay">Okay</a></li>
</ul>
<p class="content"></p>
Запускаю код, но при нажатии на пункт НЕ показывает content , а переходит по ссылке и как следствие Page not found.
Хотя на видео все работает.
Вопрос: это моя ошибка или с 2014 кода что то сильно изменилось в языке?
var links, updatestate, contentEL, navEL;
contentEL = document.querySelector('.content');
navEL = document.querySelector('.nav');
links = {
hi: "test1",
bye: "test2",
okay: "test3"
};
updatestate = function(state) {
if (!state) return;
contentEL.innerHTML = links[state.page];
};
window.addEventListener('popstate', function(e) {
updatestate(e.state);
});
navEL.addEventListener('click', function(e){
var state;
if (e.target.tagName !== 'A') return;
state = { page: e.taget.getAttribute('href') };
history.pushState(state, '', state.page);
updatestate(state);
e.preventDefault();
}
);