У меня есть ниже скрипт для переключения (показать/скрыть) между различными DIVs на странице (указано ниже в семявыносящих коробки =)document.location.hash не обновляя URL
Но это не обновляет URL когда я переключаюсь между разными DIV. Например, если я перейду к example.com/#david-guetta, он загрузит div id = david-guetta onload, но когда я нажму ссылку на div id = xx, он переключит видимость DIVs, но не вернет строку url be example.com/#xx
Я играл с этой частью ниже (document.location.hash.split ('#'). last()); и пробовать различные комбинации с document.url или document.href без везения. Конечно, мои знания о JS очень ограничены.
СПАСИБО за вашу помощь!
<script src="http://ajax.googleapis.com/ajax/libs/prototype/1.7/prototype.js" type="text/javascript" charset="utf-8">
</script>
<script id="domloaded" type="text/javascript">
document.observe('dom:loaded', function(evt){
var boxes = $$('#all, #david-guetta, #xx, #zx, #djf').invoke('hide');
var target = (document.location.hash.split('#').last());
if(!!target && $(target)){
$(target).show(){
var string = document.url
};
}
$('controls').on('click', 'a', function(evt, elm){
evt.stop();
var link = elm.href.split('#').last();
if(link && $(link)){
boxes.invoke('hide');
$(link).show();
}
});
});
</script>
Я думаю, что вы пропустили '.' или' # '' на controls'? Является ли мероприятие увольнением? – Tushar
Предполагая, что событие щелчка стреляет, поскольку вопросы @Tushar, я думаю, что 'evt.stop()' препятствует тегу привязки обновлять URL. –
Спасибо вам обоим. Событие запускается без [.] Или [#] ... однако за @SteveH. когда я удалил [evt.stop()], он сработал! Большое вам спасибо, это решило мою проблему! – mxrv