2015-12-21 58 views
-2

我正在使用一個下拉菜單按鈕,點擊時顯示之前隱藏的div。

此代碼在沒有$(this).next的情況下工作,但它會顯示所有div的類.menudrop,因爲頁面上有多個按鈕和下拉菜單;我試圖只在.dropclick被按下後改變下一個.menudrop的顯示。

的jsfiddle:https://jsfiddle.net/jeffd/nuen3735/1/

<div class='playbox'> 
    <div class='playbox2 playboxplayer player'> 
     <div class='play' key='respect.mp3' name='Respect' tag='tagtest'></div> 
    </div> 
    <div class='playbox2 playboxbpm bpm'>85 BPM</div> 
    <div class="playbox2 playboxname name">Respect</div> 
    <div class='playbox2 playboxkeywords keywords'>Slow, Smooth, RnB</div> 
    <div class='playbox2 playboxlength length'>02:12</div> 
    <div class='playbox2 playboxbuy buy'> 
     <div class='mp3buy droptrack' data-product-id='Respect' data-product-key='3c31060e1038c3fe3e9cb0f069d6f33b'>+</div> 
    </div> 
    <div class='menudrop'>(dropdown)</div> 
</div> 
$(".droptrack").on('click', function() { 
    $(this).next(".menudrop").slideToggle('display', function(i, v) { 
     return v == 'none' ? 'inline-block' : 'none' 
    }); 
}); 
+2

您的代碼工作正常:https://jsfiddle.net/RoryMcCrossan/nuen3735/。你能否提供關於你遇到的問題的更多細節。 –

+0

對於jQuery'slideToggle()'方法沒有類似的問題,但無論如何,這將工作......而'.dropclick',那是什麼? –

+2

只需使用$(this).next('div')即可。 –

回答

2

$(this).next()移動到下一個同級。在您的代碼中,.menudrop不是.droptrack的兄弟,而是其父親。你應該做的是:

$(this).parent().next('.menudrop') 

(提示:正確的HTML格式將在下一次幫你)

+0

謝謝約翰尼,我只是改變發現到下一個$(this).parent()。next('。menudrop')https://jsfiddle.net/jeffd/nuen3735/5/ – Jeff

0
$(this).parent().next('.menudrop') 
+0

是的,訣竅是在導航父()。 – boisvert