window.location.hash и addClass
Добрый день!
Я новичок в JS. Подскажите, где у меня ошибка.
if ( window.location.hash == "#age") {
function age() {
if ( $('li').hasClass('currentage') ) $('.currentage').removeClass('currentage').addClass('current');
}
}
if ( window.location.hash == "#pr") {
function pr() {
if ( $('li').hasClass('currentpr') ) $('.currentpr').removeClass('currentpr').addClass('current');
}
}
if ( window.location.hash == "#country") {
function country() {
if ( $('li').hasClass('currentcountry') ) $('.currentcountry').removeClass('currentcountry').addClass('current');
}
}
<body onload = "age(); pr(); country();"> такая конструкция не работает но одна из частей работает нормально, например:
if ( window.location.hash == "#age") {
function age() {
if ( $('li').hasClass('currentage') ) $('.currentage').removeClass('currentage').addClass('current');
}
}
Где я что упускаю? |
Кстати, и почему не работает вот такая простая конструкция:
if ( window.location.hash == "#age") {
$('.currentage').removeClass('currentage').addClass('current');
}
if ( window.location.hash == "#pr") {
$('.currentpr').removeClass('currentpr').addClass('current');
}
if ( window.location.hash == "#country") {
$('.currentcountry').removeClass('currentcountry').addClass('current');
}
|
Цитата:
if ( $('li').hasClass('currentpr') ) $('.currentpr').removeClass('currentpr').addClass('current');
Первый элемент $('li') не имеет такого класса, соответственно в условии получаем false и ничего не происходит. |
1) функции нельзя объявлять внутри условий.
2) Че за китай-код? Вам платят за количество строк? 3) На кой вам onload если у вас под рукой jQuery с его $(document).ready() ? Почему не так ?:
$(document).ready(function(){
var hash = location.hash.substring(1);
if (hash) {
var className = 'current' + hash;
$('.' + className).removeClass(className).addClass('current');
}
});
Вот только к чему все эти танцы с бубном? Какому человеку в здравом уме понадобится сначала генерить currentblabla на сервере, а затем заменять на current в браузере? Попахивает бредом, не говоря уж про кривизну рук. |
Цитата:
var age = function() Цитата:
|
Цитата:
|
| Часовой пояс GMT +3, время: 12:54. |