2016-02-05 24 views
-2

我有一個功能,我切換背景圖像(加號和​​減號圖標)。選擇一個可摺疊菜單項的鏈接,但不是它的後代

當我展開子列表並單擊鏈接時,它也切換其子項目的圖標,但它不應該。這會導致添加減號圖標。

$('.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應可以切換圖像時。

回答

1

更改此:

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

這樣:

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

Demo

而且,我懷疑:first-child僞選擇是不必要在這裏。

+0

完美,謝謝!你能解釋爲什麼第一個不能像其他人那樣工作嗎? – Grasper

+0

不,它不是。它是一個後代選擇器,它搜索所有從屬元素。 (你的孫輩不是你的孩子。) – isherwood

+0

但它說第一個孩子是一個鏈接, – Grasper