2013-11-26 64 views
0

我試圖實現與jQuery手風琴 - 而不是使用專用插件,通過可與標準的jQuery庫來實現點擊功能,而實現它:如何防止jQuery點擊功能定位DOM中的其他元素?

腳本:

jQuery('.abhandlungen h4').click(function(){ 
    if(false == jQuery(this).next('p').is(':visible')) {jQuery('p').slideUp(8); jQuery(this).parent().addClass("pressed");} 
    if(true == jQuery(this).next('p').is(':visible')) {jQuery(this).parent().removeClass("pressed");} 
     jQuery(this).next('p').slideToggle(240); 
     jQuery(this).parent().siblings('li').removeClass("pressed"); 
}); 

Markup:

<div id="nav" class="navigation"> 
    <div class="nav-previous"><p><a href="#" rel="prev">Link to previous page</a></p></div> 
    <div class="nav-next"><p><a href="#" rel="next">Link to next page</a></p></div> 
</div> 
<div class="post"> 
    <ul class="abhandlungen"> 
     <li> 
      <h4><span class="icon"></span>Title of expandable section 1</h4> 
      <p>Copy text to appear by clicking on the above h4</p> 
     </li> 
     <li> 
      <h4><span class="icon"></span>Title of expandable section 2</h4> 
      <p>Copy text to appear by clicking on the above h4</p> 
     </li> 
     <!-- and further ones --> 
    </ul> 
</div> 

現在我有這個問題,我點擊一個h4也會觸發我的導航線消失。在導航中,我的rel=prevrel=next可能有任何依賴關係嗎?

另外我想知道奇怪的行爲,每個人的第一次點擊使其兄弟姐妹可見,但不增加類.pressed。所有進一步的點擊都按預期工作。

http://jsfiddle.net/xfSya/1/

回答

0

變化:

jQuery('p').slideUp(8); 

到:

jQuery('p',this).slideUp(8); 

jsFiddle example

你原來的選擇是目標也許你可以通過看這個的jsfiddle幫助我導致鏈接消失的所有段落標籤。

+0

哇,非常感謝!所以我的第一個問題解決了超快... –

+0

對此的另一個問題:我的概念是保持打開時只有一個容器(所以打開的一個通過點擊另一個關閉)。這也可以通過這種方式來實現嗎? –

+0

是的,這絕對有可能,但是如果您需要幫助,我建議您提出一個新問題。 – j08691

相關問題