获取对JQuery UI Accordion Header的引用

Siv*_*esh 2 javascript jquery jquery-ui jquery-ui-accordion

我有一个JQuery手风琴如下;

<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>
Run Code Online (Sandbox Code Playgroud)

手风琴由此产生:

$("#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
  }
});
Run Code Online (Sandbox Code Playgroud)

JSFiddle链接

手风琴正在装载好.我正在努力实现两件事.

1-获取刚刚打开的标题的标记内的href元素的ID(即ids link1和link2).change事件中的上面代码给出了标题的索引.但我正努力让下一行(var header = ....)工作.你能做到吗?

2-已解决当用户点击已打开的标题时,该部分将关闭,因此所有部分都会被关闭.我不确定我怎么能做到这一点.你能帮忙吗?

谢谢

Fré*_*idi 7

当手风琴改变时,<h3>传递一个包装活动头部元素的jQuery对象ui.newHeader,因此你只需要使用find():

var currentHeaderID = ui.newHeader.find("a").attr("id");
Run Code Online (Sandbox Code Playgroud)

这里更新了小提琴.