2015-05-07 5 views
0

У меня есть ниже скрипт для переключения (показать/скрыть) между различными 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> 
+1

Я думаю, что вы пропустили '.' или' # '' на controls'? Является ли мероприятие увольнением? – Tushar

+0

Предполагая, что событие щелчка стреляет, поскольку вопросы @Tushar, я думаю, что 'evt.stop()' препятствует тегу привязки обновлять URL. –

+0

Спасибо вам обоим. Событие запускается без [.] Или [#] ... однако за @SteveH. когда я удалил [evt.stop()], он сработал! Большое вам спасибо, это решило мою проблему! – mxrv

ответ

0

Если ваше знание JS ограничено, возможно, подумайте о том, чтобы придерживаться существующей библиотеки вместо того, чтобы писать свой собственный.

Попробуйте jQuery-hashchange, например.

Вот example

Я предполагаю, что это именно то поведение, которое вы хотите

+0

в терминах строки да, это поведение, которое я ищу, но опять же из-за моих ограниченных знаний о JS я бы не знал, как использовать это в сочетании с возможностью переключения между divs – mxrv