2011-01-05 37 views
0

我正在使用show和hide在jQuery中。基本上我的頁面上有很多類(不是唯一的ID),它們都有一個顯示和隱藏功能。但是,當選擇下拉列表中的某個元素時,該內容也會隱藏並顯示。重置。在一個函數內使用觸發器

所以這意味着我有2個JavaScript函數設置。 1根據下拉菜單顯示和隱藏,另一個在點擊鏈接時顯示和隱藏。

我遇到的問題是鏈接文本根據div打開或關閉使用.toggle旋轉。如果我在下拉列表中選擇選項1並打開div,則切換工作正常。但是,如果您在下拉列表中選擇其他選項,然後切換鏈接文字,則會變得混亂並顯示錯誤的文字。

我需要能夠重置切換到隱藏下拉式使用,但我一直在嘗試過去的幾天,似乎無法讓它工作!

這裏是jQuery代碼:

第一個功能是爲下拉顯示和隱藏,第二個是用於的onclick顯示和隱藏。

$(document).ready(function(){ 
    $('.box').hide(); 
    $('#dropdown').change(function() { 
    $('.box').hide(); 
    $('#div' + $(this).val()).show(); 
    $('.redbox').hide();  


}); 
}); 

$(document).ready(function(){ 

     var showText='Account details'; //Closed text variable 
     var hideText='Account details'; //Open text variable 

     var is_visible = false; 

     $('.redbox').prev().append(' <a href="#" class="toggleLink copyLink" >'+showText+'</a>'); 
     $('.redbox').hide(); 

     $('a.toggleLink').click(function() { 
      is_visible = !is_visible; 
     $(this).html((!is_visible) ? showText : hideText); 

     $(this).parent().next('.redbox').toggle(); 

     return false; 

    }); 
    }); 

HTML代碼相當長,所以我簡化了一下,我們還加載了其他動態JavaScript屬性的流式加載。此代碼用於下拉菜單中的每個元素。

<a href="#" class="toggleLink copyLink"></a>. 

<div class="redbox redbox_scroller_sav"> 

    <div id="coda-nav-1" class="coda-nav"> 
     <ul> 
    <li><a href="#1">Pane 1</a></li> 
    <li><a href="#2">Pane 2</a></li> 
     </ul> 
</div> 

<div class="coda-slider preload" id="coda-slider-1"> 
    <div class="panel"> 
     <div class="panel-wrapper"> 
       Pane 1 text 
     </div> 
    </div> 

    <div class="panel"> 
     <div class="panel-wrapper"> 
       Pane 2 text 
     </div> 
    </div> 
</div><!-- /coda-slider --> 

</div><!-- /redbox div --> 

我希望有人能幫助我!在此先感謝

+0

你可以給你的HTML代碼嗎? – Hannes 2011-01-05 13:08:31

回答

0

我不是完全確信您的代碼正在做什麼,但.toggle()有一個可選參數。如果它是true,您將顯示選擇;如果它是false,它將隱藏選擇。

+0

該代碼是我從網站上使用的。我認爲切換必須在2個變量showText和hideText之間移動。理想情況下,我想在使用下拉列表時重置切換到showText。這是否更有意義? – Barlow1984 2011-01-05 13:11:44