2013-03-07 2 views
2

При нажатии кнопки $ menulink я хотел бы, чтобы интервал внутри .menu-link содержал его класс. Я попытался код ниже, но я делаю что-то неправильно, потому что это не работает:jQuery переключать класс span при щелчке по ссылке

$(document).ready(function() { 
$('body').addClass('js'); 
var $menu = $('#menu'), 
$menulink = $('.menu-link'), 
$arrow = $('.arrow-down'); 

$menulink.click(function() { 
$menulink.toggleClass('active'); 
$menu.toggleClass('active'); 
$arrow.toggleClass('visible'); 
return false; 
});}); 
})(); 

разметке:

<a class="menu-link" href="#menu"><span class="arrow-down"></span><span>Menu</span></a> 
<nav role="navigation" id="menu" class=""> 
<ul class="menu"> 
<li>stuff</li> 
</ul> 
</nav> 

Любая помощь будет очень признателен! :)

+0

Хотя это не является причиной проблемы, когда вы выбираете элементы, если вы ожидаете только одного результата, вы должны использовать идентификатор, если вы ожидаете более одного результата, вы должны использовать класс и использовать '.each()' для итерации по каждому согласованному элементу. –

ответ

1

Попробуйте

$menulink.find('span').toggleClass('active'); 

если вы хотите только первый пролет, то

$menulink.find('span:first').toggleClass('active'); 

или хотите охватить с наличием arrow-down класса

$menulink.find('span.arrow-down').toggleClass('active'); 
+0

Спасибо, кучи! Это сработало! :) – Jess

+0

@ Jess всегда приветствую брата. –

0
$menulink.children('span').toggleClass('whatever'); 

внутри функция щелчка.

Или, если вы хотите предназначаться только arrow-down пролет

$menulink.children('span.arrow-down').toggleClass('whatever'); 
0

попробовать это

$menulink.children(':first').toggleClass('active'); 

это находит первый ребенок, который <span> в вашем случае

0

код используется переключит все элементы с этим классом на этой странице. Попробуйте это:

$(document).ready(function() { 
    $('.menu-link').click(function() { 
     $(this).toggleClass('active'); 
     $(this).children('.arrow-down').toggleClass('visible'); 
     $('#menu').toggleClass('active'); 
    }); 
}); 
0

Я предполагаю, что, поскольку $menu-link является якорем тег, браузер навигации от страницы?

Я не понимаю, почему любой из вышеперечисленных ответов будет работать, если у вас нет.

попробуйте настроить jsfiddle?

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