2014-09-18 1 views
0

Я рядом с моим кодом, highligting div на основе выбранного clicked a с hash id.Обновление страницы с изменением хеша с помощью Javascript

Единственная проблема, которая возникает страница не перегрузочные по щелчку

Вот код:

<script type="text/javascript"> 
var idh = window.location.hash 

    $(document).ready(function(){ 
    $("a"+idh).parents("div:first").addClass("uthevet"); 

    $(".Nytt-over a").click(function() { 
     var newLoc = this.attr('id'); 
     window.location.hash = newLoc; 
     location.reload(); 
    }); 
}); 
</script> 

Я вижу хэштегом изменяющийся по щелчку, но не перезаряжает. Что я делаю неправильно?

Page http://relasjonsledelse.no/Nytt/Nyheter.asp#BiGO (Нажмите на один из заголовков в теле, это должно изменить выделенную область)

+1

Вы попробовали 'window.location.reload()'? Проверьте консоль браузера. – mechalynx

+0

@ivy_lynx область действия скрипта - это «окно» в любом случае, поэтому не требуется – Joe

+0

В вашем коде есть ошибки, проверьте консоль ошибок (F12). –

ответ

3

Вам нужно обернуть this в объект JQuery в обработчик щелчка. Это был провал на призыв attr:

$(".Nytt-over a").click(function() { 
     var newLoc = $(this).attr('id'); 
     window.location.hash = newLoc; 
     location.reload(); 
    }); 

Или использовать var newLoc = this.id;, как Джо говорит :)

Если вы сомневаетесь, используйте F12 отладчик консоли обеспечивают с помощью Chrome, IE и т.д.

+0

Также может быть просто 'this.id', jQuery здесь не нужен – Joe

+0

@Joe: true, но *" когда в jQuery .... "* :) –

+0

" * Когда в jQuery ... быть бесполезно неэффективно * «? : P jQuery - это инструмент для облегчения работы, но я не думаю, что '$ (this) .attr ('id')' проще, чем 'this.id' ;-) – Joe

1

Просто используйте код ниже

var newLoc = $(this).attr('id'); 

вместо

var newLoc = this.attr('id'); 

Несомненно, это сработает. Когда вы даете «это», он не вызывает функцию jQuery для получения идентификатора атрибута. И еще одна вещь - не нужно указывать объект окна и снова вызывать перезагрузку, просто установить как

location.hash = 'your link'; 
Смежные вопросы