2011-07-01 88 views
2

我有一個如下的JQuery Accordion;獲取對JQuery UI Accordion頭的引用

<div id="accordion"> 
<h3 class="ui-accordion-header"><a id="link1" href="#">First Header</a></h3> 
    <div id="div1">First Content</div> 
<h3 class="ui-accordion-header"><a id="link2" href="#">Second Header</a></h3> 
    <div id="div2">Second Content</div> 
</div> 

手風琴由此產生的:

$("#accordion").accordion({ 
    collapsible:true, 
    active:false, 
    navigation:true, 
    autoHeight:false, 
    change:function(event, ui){ 
    var index = $(this).find("h3").index(ui.newHeader[0]); 
    var header = $(this).find("h3")[index].find("a"); //<--- problem line 
    var currentHeaderID = (header.attr("id")); //<--id that I need 
    } 
}); 

JSFiddle Link

手風琴是裝載了細。我試圖實現兩件事情。

1-獲取剛剛打開的標題(即ids link1和link2)標記內的href元素的ID。在change事件裏面的代碼給了我頭部的索引。但我正在努力獲得下一行(var header = ....)的工作。你是否能夠

2-已解決當用戶點擊一個已經打開的標題,該部分被關閉,所以有效地關閉所有部分。我不知道我怎麼能做到這一點。你能幫忙嗎?

感謝

+0

#2是使用'collapisble:true'時的默認行爲 – prodigitalson

+0

當'header1'打開並且您單擊'header2'時,然後關閉'header1'並打開'header2'。當'header1'被打開,你'header1'再次點擊,則'header1'被關閉不過我想是。目前還沒有發生。 – Sivakanesh

+1

是,如果你有溼陷集應該工作方式:http://jqueryui.com/demos/accordion/#collapsible它不是現在的工作,因爲你已拼寫錯誤的'collapsible'不'collapsable' – prodigitalson

回答

7

當手風琴的變化,一個jQuery對象包裝活動頭的<h3>元素ui.newHeader傳遞,所以你只需要使用find()

var currentHeaderID = ui.newHeader.find("a").attr("id"); 

更新小提琴here

+0

非常好。坦克。 – Sivakanesh

+0

你救了我的命:)謝謝 – Alper

+0

這是救了我的一天。 –