2014-02-18 5 views
0

Я работаю над меню, в котором только активный элемент a должен иметь активный класс (hyperactive). Когда я нажимаю на какой-то другой элемент li, мне нужно удалить активный класс из всех других братьев и сестер и добавить его на клик. Li.Удаление «имени класса» у всех братьев и добавление его в активный элемент в jQuery

Это HTML:

  <ul class="main-links"> 

       <li id="ol" class="twist" data-id-name="oli" data-video-flv="europe-1.flv" data-video-m4v="europe-1.m4v"> 
        <a href="#ol" class="hyperactive"><img src="imgs/btn1.jpg" width="237" height="104" style="margin-right:3px;" alt=""></a> 
       </li> 
       <li id="fl" class="twist" data-id-name="fl" data-video-flv="latam-2.flv" data-video-m4v="latam-2.m4v"> 
        <a href="#fl"><img src="imgs/btn2.jpg" width="237" height="104" style="margin-right:3px;" alt=""></a> 
       </li> 
       <li id="jo" class="twist" data-id-name="jo" data-video-flv="na-1.flv" data-video-m4v="na-1.m4v"> 
        <a href="#jo"><img src="imgs/btn3.jpg" width="237" height="104" style="margin-right:3px;" alt=""></a> 
       </li> 
       <li id="ra" class="twist" data-id-name="ra" data-video-flv="sa-1.flv" data-video-m4v="sa-1.m4v"> 
        <a href="#ra"><img src="imgs/btn4.jpg" width="237" height="104" alt=""></a> 
       </li> 

      </ul> 

Это то, что я попытался с помощью JQuery:

var check_for_main_links = $(this).parent().attr('class'); 
    if (check_for_main_links.indexOf("twist") >= 0) { 

     console.log ($(this).attr('class')); 

     var $immediate_parent = $(this).parent(); 
     $immediate_parent.siblings().each(function() { 
      //$('span').remove(); 
      $('li').removeClass("active"); 
     } 
     var $elem_name = $p.attr('data-id-name'); 
     var new_position = $("#"+$elem_name).position().top; 
     //console.log("Element Name " + $elem_name + " position is " + new_position); 

     top_position = new_position + 40; 
    } 

ответ

1

Вы можете сделать так:

$('ul.main-links li').click(funntion() { 
    $('ul.main-links li a').removeClass('hyperactive'); 
    $(this).find('a').addClass('hyperactive'); 
}); 
1

Попробуйте это:

$('ul.main-links li a').click(function() { 
    $('ul.main-links li a').removeClass('hyperactive'); 
    $(this).addClass('hyperactive'); 
}); 
+0

Поскольку OP хочет нажимать на 'li', это не будет работать, если' li' содержит другой элемент рядом с якорем, например 'span', и когда пользователь нажимает на' span', он не будет работать должным образом. – Felix

+0

Но дело не в правильном. он хочет, как удалить активный класс и добавить текущий активный класс –

 Смежные вопросы

  • Нет связанных вопросов^_^