Помогите исправить ошибку в коде

Тема в разделе "JavaScript", создана пользователем Бобр Добр, 5 мар 2012.

Модераторы: ZiX
  1. Бобр Добр

    Бобр Добр

    Регистр.:
    17 янв 2010
    Сообщения:
    242
    Симпатии:
    37
    Привет! Есть такой код:
    PHP:
    var hash window.location.hash;
     
    if(
    hash){
    $active =  $('.contentnav a.'.hash); //здесь ошибка
    clearInterval(play);
    rotate();
    rotation();
    return 
    false;
    }
    то есть как вместо класса подставить содержимое $hash?
     
  2. KillDead

    KillDead

    Регистр.:
    11 авг 2006
    Сообщения:
    883
    Симпатии:
    540
    пхп даёт о себе знать?))

    $active = $('.contentnav a.'+hash)
     
  3. Бобр Добр

    Бобр Добр

    Регистр.:
    17 янв 2010
    Сообщения:
    242
    Симпатии:
    37
    cпасибо но теперь вылез новый баг)

    PHP:
    $(document).ready(function() {
    $(
    ".vmenu a:first").addClass("active");//ставим первую ссылку активной
    var contentwidth = $(".s_block").width();
    var 
    totalcontent = $(".s_post").size();
    var 
    allcontentwidth contentwidth totalcontent;
    $(
    ".s_content").css({'width' allcontentwidth});
    rotate = function(){
    var 
    slideid $active.attr("rel") - 1;
    var 
    slidedistance slideid contentwidth;
    $(
    ".vmenu a").removeClass('active');
    $active.addClass('active');
    $(
    ".s_content").animate({
        
    left: -slidedistance
        
    }, 500 );
    };
     
    $(
    ".vmenu a").click(function() {
    $active = $(this);
    rotate();
    return 
    false;
    });
     
    var 
    hash window.location.hash;
     
    if(
    hash !== 0){// Теперь если якарь не передать то первая ссылка не становиться активной....
    $active =  $(".vmenu a.cl"+hash.slice(1,hash.length));
    rotate();
    }else{
    $active =  $(".vmenu a:first");
    rotate();
    }
     
     
    });
     
  4. Бобр Добр

    Бобр Добр

    Регистр.:
    17 янв 2010
    Сообщения:
    242
    Симпатии:
    37
    кароче написал так:
    PHP:
    if(hash.length>0){
    $active =  $(".vmenu a.cl"+hash.slice(1,hash.length));
    rotate();
    }
    но как то оно не логично что ли... нужно функцию запускать...
    кароче нуна учить js)))
     
  5. AlexMist

    AlexMist Создатель

    Регистр.:
    17 ноя 2009
    Сообщения:
    49
    Симпатии:
    7
    У тебя хеш этот в разметке присутствует ? Т.е. в файрбаге у тебя реально такой класс у ссылки .vmenu a.clТВОЙ_ХЕШ (типа )?
    ПС тебе в функцию ссылку передавать нужно :
    PHP:
    $(".vmenu a").click(function() {
    $active = $(this);
    rotate($active);
    return 
    false;
    });
    Как то так
     
  6. Бобр Добр

    Бобр Добр

    Регистр.:
    17 янв 2010
    Сообщения:
    242
    Симпатии:
    37
    имя класса = хеш

    написал так(вроде всё норм:(
    PHP:
    $(document).ready(function() {
    $(
    ".vmenu a:first").addClass("active");
    var 
    contentwidth = $(".s_block").width();
    var 
    totalcontent = $(".s_post").size();
    var 
    allcontentwidth contentwidth totalcontent;
    $(
    ".s_content").css({'width' allcontentwidth});
    rotate = function(){
    var 
    slideid $active.attr("rel") - 1;
    var 
    slidedistance slideid contentwidth;
    $(
    ".vmenu a").removeClass('active');
    $active.addClass('active');
    $(
    ".s_content").animate({
    left: -slidedistance
    }, 500 );
    };
    $(
    ".vmenu a").click(function() {
    $active = $(this);
    rotate();
    return 
    false;
    });
    var 
    hash window.location.hash;
    if(
    hash.length>0){
    $active = $(".vmenu a."+hash.slice(1,hash.length));
    rotate();
    }
    $(
    "dt a").click(function() {
    $active = $(".vmenu a."+this.hash.slice(1,this.hash.length));
    rotate();
    });
    });