jQuery Accordion - 需要当前所选内容部分的索引

Bru*_*uce 13 indexing jquery accordion

我在网页上有一个基于jQuery Accordion的简单菜单.我稍微简化了代码,它看起来像这样;

<div id="menu_div" class="nt-tab-outer nt-width-150px">

<h3 class="nt-tab-title"><a href="#">Menu A</a></h3>
<div id="menu_1_div">
  <a href="itemA1">Item A1</a><br />
  <a href="itemA2">Item A2</a><br />
</div>

<h3 class="nt-tab-title"><a href="#">Menu B</a></h3>
<div id="menu_2_div">
  <a href="fTabsDyn">Item B1</a><br />
  <a href="fPlainDyn">Item B2</a><br />
</div>

</div>

<script type="text/javascript">
jQuery(function() {
 jQuery("#menu_div").accordion({
  active: 1,
  change: function(event, ui) { 
      alert('bob');
  }})
});

</script>
Run Code Online (Sandbox Code Playgroud)

当页面打开时,这将设置手风琴的第二个"部分".(活动:1)如果单击任一标题,则会弹出一个简单的警报"bob".到现在为止还挺好.

现在我想用标题的索引替换"bob".所以"活跃"的"阅读"版本.也就是说,当点击第一个手风琴标题时,我得到0,如果点击第二个标题,我得到1.

(除此之外,我当然不想做一个Alert,我想用值来对服务器进行Ajax调用,所以服务器知道客户端打开了哪个菜单.那部分我可以做,但是我我正在努力获得正确的发送价值.如果索引不可用,请随时提供其他建议.

谢谢!

Laz*_*rus 24

JQuery UI网站上提供的jquery UI文档:

//getter
var active = $('.selector').accordion('option', 'active');
Run Code Online (Sandbox Code Playgroud)

或者在你的情况下

var active = jQuery("#menu_div").accordion('option', 'active');
Run Code Online (Sandbox Code Playgroud)


Bru*_*uce 19

布鲁斯的谷歌法 - 你挣扎多久并不重要,发布你的问题1分钟后谷歌将最终提供答案.

  function(event, ui) { 
  var index = jQuery(this).find("h3").index(ui.newHeader[0]);
  alert('bob ' + index);
  }})});
Run Code Online (Sandbox Code Playgroud)

哦,也许这会帮助其他人.


Lin*_*Lin 7

您可以使用获取活动索引

ui.options.active
Run Code Online (Sandbox Code Playgroud)