2

单击 $menulink 时,我希望 .menu-link 中的跨度可以切换它的类。我尝试了下面的代码,但我做错了,因为它不起作用:

$(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>

任何帮助将不胜感激!:)

4

5 回答 5

1

尝试

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

如果你只想要第一个跨度那么

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

或者想要arrow-down上课

$menulink.find('span.arrow-down').toggleClass('active');
于 2013-03-07T11:07:43.250 回答
0
$menulink.children('span').toggleClass('whatever');

在点击功能内。

或者,如果您只想定位arrow-down跨度

$menulink.children('span.arrow-down').toggleClass('whatever');
于 2013-03-07T11:03:47.403 回答
0

试试这个

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

这会找到你的第一个<span>孩子

于 2013-03-07T11:07:25.150 回答
0

您使用的代码将切换页面上具有该类的所有元素。试试这个:

$(document).ready(function() {
   $('.menu-link').click(function() {
      $(this).toggleClass('active');
      $(this).children('.arrow-down').toggleClass('visible');
      $('#menu').toggleClass('active');
   });
});
于 2013-03-07T11:08:45.887 回答
0

我猜是因为$menu-link是一个锚标签,浏览器正在离开页面?

如果您的答案无效,我不明白为什么上述任何答案都会起作用。

尝试设置一个jsfiddle?

于 2013-03-07T11:08:52.690 回答