2015-05-22 3 views
2

Попытка смешать переменную с помощью: не использовать эту переменную с addClass. но пока не повезло.Использование переменной с jQuery addClass

HTML

<ul> 
    <li><a href="#">Nav One</a></li> 
    <li><a href="#">Nav Two</a></li> 
    <li><a href="#">Nav Three</a></li> 
    <li><a href="#">Nav Four</a></li> 
</ul> 

МЕНЬШЕ

ul{ 
    li{ 
     a{ 
      color: black; 
      transition: all 0.5s ease; 
      font-size: 3rem; 
      text-decoration: none; 
     } 
    } 
} 
.enc-non-active{ 
    color: gray; 
} 

JAVASCRIPT

myFunction('ul li a', 'enc-active', 'enc-non-active'); 

function myFunction($menu, $activeClass, $nonActiveClass) { 
    $(function(){ 
     $($menu).hover(function(){ 
      $(this).addClass($activeClass); 
     }, 
     function(){ 
      $(this).removeClass($activeClass); 
     }); 
     $($menu).hover(function(){ 
      var fullPath = $menu + ':not(' + $activeClass + ')'; 
      $(fullPath).addClass($nonActiveClass); 
     }, 
     function(){ 
      var fullPath = $menu + ':not(' + $activeClass + ')'; 
      $(fullPath).removeClass($nonActiveClass); 
     }); 
    }); 
} 

Вот CodePen http://codepen.io/antfuentes87/pen/pJEaeb, если кто-нибудь может сообщить мне, что я делаю неправильно, это было бы здорово. Спасибо за ваше время.

+1

Что значение '$ menu' и' $ activeClass'? – Barmar

+0

Независимо от того, что хотел использовать эту функцию. Например, я бы назвал это как myFunction ('ul li a', 'enc-active', 'enc-non-active'). Вы посмотрели на козепин? – antfuentes87

+1

Какая функция? Пожалуйста, размещайте код здесь, а не только в CodePen. – Barmar

ответ

1

Вы пропускаете точку, чтобы имя класса в селекторе CSS

Изменить

var fullPath = $menu + ':not(' + $activeClass + ')'; 

До

var fullPath = $menu + ':not(.' + $activeClass + ')'; 

DEMO

+0

Да, понял. Благодаря! – antfuentes87

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