选择一个可折叠菜单项的链接,但不是它的后代

问题描述:

我有一个功能,我切换背景图像(加号和​​减号图标)。选择一个可折叠菜单项的链接,但不是它的后代

当我展开子列表并单击链接时,它也切换其子项目的图标,但它不应该。这会导致添加减号图标。

$('.expandor a:first-child').click(function (e) { 
    e.preventDefault(); 
    $(this).next('ul').slideToggle(); 
    $(this).parent('li').toggleClass('expandor dexpandor'); 
}); 

Demo enter image description here 负图标应该在那里只有点击的Windows 8应可以切换图像时。

更改此:

$('.expandor a:first-child').click 

这样:

$('.expandor > a:first-child').click 
//   ^-------------------------- explicit child selector 

Demo

而且,我怀疑:first-child伪选择是不必要在这里。

+0

完美,谢谢!你能解释为什么第一个不能像其他人那样工作吗? – Grasper

+0

不,它不是。它是一个后代选择器,它搜索所有从属元素。 (你的孙辈不是你的孩子。) – isherwood

+0

但它说第一个孩子是一个链接, – Grasper