2013-06-22 85 views
0

添加JQuery手風琴到WordPress網站顯示歸檔帖子。當前顯示的帖子具有由class =「current-article」標識的列表項。每個手風琴的「選項卡」可以是一個月(本年度)或一年。JQuery UI手風琴:在'當前'頁面打開標籤

我編譯的JQuery代碼成功地打開了頁面加載當前文章的選項卡。但是,會出現兩個錯誤:1)第一個選項卡(通常默認爲打開狀態)不可單擊,直到另一個選項卡被單擊並打開,並且2)使用我的代碼「強制」打開的選項卡不會關閉直到其他人首次點擊後再次點擊。

這裏的標記:

<div id="accordion"> 
<h3 tabindex="-1" aria-selected="false" aria-controls="ui-accordion-accordion-panel-0" id="ui-accordion-accordion-header-0" role="tab" class="ui-accordion-header ui-helper-reset ui-state-default ui-accordion-icons ui-corner-all"><span class="ui-accordion-header-icon ui-icon ui-icon-triangle-1-s"></span>June</h3> 
<div aria-hidden="true" aria-expanded="false" role="tabpanel" aria-labelledby="ui-accordion-accordion-header-0" id="ui-accordion-accordion-panel-0" style="display: none;" class="ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"> 
<ul>           
    <li><a href="http://linkaddress.co.uk" rel="bookmark" title="Article One">Article One</a></li> 
     <li><a href="http://linkaddress.co.uk" rel="bookmark" title="Article Two">Article Two</a></li> 
    </ul> 
</div> 
<h3 tabindex="0" aria-selected="true" aria-controls="ui-accordion-accordion-panel-1" id="ui-accordion-accordion-header-1" role="tab" class="ui-accordion-header ui-helper-reset ui-state-default ui-accordion-icons ui-accordion-header-active ui-state-active ui-corner-top"><span class="ui-accordion-header-icon ui-icon ui-icon-triangle-1-e"></span>May</h3> 
<div aria-hidden="false" aria-expanded="true" role="tabpanel" aria-labelledby="ui-accordion-accordion-header-1" id="ui-accordion-accordion-panel-1" style="display: block;" class="ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content-active"> 
<ul>          
    <li class="current current-article"><a href="http://linkaddress.co.uk" rel="bookmark" title="Article Three">Article Three</a></li> 
    </ul> 
</div> 
<h3 tabindex="-1" aria-selected="false" aria-controls="ui-accordion-accordion-panel-2" id="ui-accordion-accordion-header-2" role="tab" class="ui-accordion-header ui-helper-reset ui-state-default ui-corner-all ui-accordion-icons"><span class="ui-accordion-header-icon ui-icon ui-icon-triangle-1-e"></span>February</h3> 
<div aria-hidden="true" aria-expanded="false" role="tabpanel" aria-labelledby="ui-accordion-accordion-header-2" id="ui-accordion-accordion-panel-2" style="display: none;" class="ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom"> 
    <ul>         
     <li><a href="http://linkaddress.co.uk" rel="bookmark" title="Article Four">Article Four</a></li> 
     <li><a href="http://linkaddress.co.uk" rel="bookmark" title="Article Five">Article Five</a></li> 
    </ul> 
    </div> 
</div>  

這是我的腳本代碼(這是簡單地放置在頭):

$(document).ready(function() { 
    $('h3.ui-accordion-header-active').attr('tabindex', '-1'); 
    $('h3.ui-accordion-header-active').attr('aria-selected', 'false'); 
    $('div.ui-accordion-content-active').prev().removeClass('ui-accordion-header-active ui-state-active ui-corner-top').addClass('ui-corner-all'); 
    $('div.ui-accordion-content-active').css("display","none"); 
    $('div.ui-accordion-content-active').attr('aria-expanded', 'false'); 
    $('div.ui-accordion-content-active').attr('aria-hidden', 'true'); 
    $('div.ui-accordion-content-active').removeClass("ui-accordion-content-active"); 
    $('li.current-article').closest("div").addClass("ui-accordion-content-active"); 
    $('div.ui-accordion-content-active').attr('aria-expanded', 'true'); 
    $('div.ui-accordion-content-active').attr('aria-hidden', 'false'); 
    $('li.current-article').closest("div").css("display","block"); 
    $('div.ui-accordion-content-active').prev().removeClass('ui-corner-all').addClass('ui-accordion-header-active ui-state-active ui-corner-top'); 
    $('h3.ui-accordion-header-active').attr('tabindex', '0'); 
    $('h3.ui-accordion-header-active').attr('aria-selected', 'true'); 
}); 

我不是Java專家(因爲你可能已經猜到) - 我只是一步一步地刪除默認「活動」選項卡上的「活動」類和屬性,並將它們分配給「當前」選項卡。

我比較了標記或各種狀態與沒有我的代碼,以查看是否有任何我錯過了,但我看不出任何區別。

我的問題是關於什麼時候應用我的更改?或者做我的更改'鎖定'再次點擊時獲得釋放的東西?

乾杯。

回答

1

好的 - 今天學到了更多...而不是試圖編輯所有的標記,我應該只是模擬一個'點擊事件。 Simples。

因此而不是腳本代碼臃腫塊,我替換爲:

$(document).ready(function() { 
     if ($('#accordion').length) { 
      $('li.current-article').closest("div").prev("h3").click(); 
     } 
    }); 

這看起來對文章標有「電流文章」,然後「點擊」它相關的H3頭。