2014-12-30 4 views
0

DEMOAlternate для Тумблера в JQuery

Что Iam пытается достичь ... Если пользователь нажимает на 1-й элементе списка, - фон добавляется Если пользователь СНОВА кликов по тому же элементу списка - фон должен быть удален

который не происходит. может кто-то PLZ посмотреть на это .. Я попытался toggleClass, но его не работает ..

Спасибо!

ageUrl = ""; 

$('.ageUrl li a').on('click', function(e){ 
    e.preventDefault(); 
    ageUrl = $(this).attr("href"); 

    if($(this).hasClass('selectedBg')){ 
     $('.ageUrl li, .ageUrl li a').removeClass('selectedBg'); 
    } 
    else { 
     //$(this).addClass('selectedBg'); 

     $('.ageUrl li, .ageUrl li a').removeClass('selectedBg'); 
     $(this).closest('li').addClass('selectedBg'); 
     //$(this).closest('li').toggleClass('selectedBg') 
     console.log(ageUrl); 
    } 
}); 

$('.crossIconSel').on('click', function(){ 
    alert('hi'); 
    $('.ageUrl li, .ageUrl li a').removeClass('selectedBg, crossIconSel'); 
}); 

ответ

1

Demo Fiddle Попробуйте один

$('.ageUrl li a').on('click', function(e){ 
      e.preventDefault(); 
      ageUrl = $(this).attr("href"); 

      if($(this).parent('li').hasClass('selectedBg')){ 
       $('.ageUrl li, .ageUrl li a').removeClass('selectedBg'); 
      } 
      else { 
       //$(this).addClass('selectedBg'); 

       $('.ageUrl li, .ageUrl li a').removeClass('selectedBg'); 
       $(this).closest('li').addClass('selectedBg'); 
       //$(this).closest('li').toggleClass('selectedBg') 
       console.log(ageUrl); 
      } 
     }); 

     $('.crossIconSel').on('click', function(){ 
      alert('hi'); 
      $('.ageUrl li, .ageUrl li a').removeClass('selectedBg, crossIconSel'); 
     }); 
+0

Tnx Он работал :-), что было изменение? –

+1

только эта часть изменяется, если ($ (this) .parent ('li'). HasClass ('selectedBg')) –

1

Ваше if состояние было не так, как вы проверяли на a элемент, он имеет класс SelectedBg, тогда как вы применили класс на .closest(li):

Просто сделайте if состояние примерно:

if ($(this).closest('li').hasClass('selectedBg')) { 
    $('.ageUrl li, .ageUrl li a').removeClass('selectedBg'); 
} 

Working Demo

0

Смотрите, если это работает

Jquery

$('.ageUrl li a').on('click', function (e) { 
      e.preventDefault(); 
      $('.ageUrl li a').not(this).removeClass('selectedBg'); 
      if($(this).hasClass('selectedBg')){ 
       $(this).removeClass('selectedBg'); 
      } 
      else{ 
       $(this).addClass('selectedBg'); 
      } 
     }); 

Рабочий код ->JSFIDDLE

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