2013-01-03 54 views
4

我有应该在'activate'和'beforeActivate'事件中触发的警报。这些都不会发生。未触发手风琴事件

的Javascript

$(function() { 
    $(".accordion").accordion({ 
    collapsible: false, 
    active: true, 
    activate: function (event, ui) { alert("activate"); }, 
    beforeActivate: function (event, ui) { alert("before activate"); } 
    }); 
}); 

的Html

<div> 
    <ul> 
    <li>0</li> 
    <div class="accordion"> 
     <li> 
      <h3><a href="#">First</a></h3> 
      <div> 
       <ul> 
        <li>1</li> 
        <li>2</li> 
       </ul> 
      </div> 
     </li> 
     <li> 
      <h3><a href="#">Second</a></h3> 
      <div> 
       <ul> 
        <li>3</li> 
        <li>4</li> 
       </ul> 
      </div> 
     </li> 
    </div> 
    </ul> 
</div> 

我知道我在UL的侧DIV嵌套不正确的HTML。

回答

3

您是否确定并包含对jQueryUI库的适当引用?

CDN

<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.js'></script> 

普通文件参考

<script type='text/javascript' src='.../yourDirectory/jquery-ui.js'></script> 

您可以在下面看到一个工作示例,其中包括jQuery UI的引用后正常功能。

Example

+0

我使用jQuery-UI-1.8。 11 –

+1

1.8.11似乎是一个问题,因为我试图使用1.8.1,但它失败了。是升级到1.9.1的一个选项,因为它看起来好像是一个bug <1.9 –

12

如果你使用1.8,那么要使用changechangestart的事件:

$(".selector").accordion({ 
    change: function(event, ui) {} 
}); 

http://api.jqueryui.com/1.8/accordion

+0

谢谢。我一直在努力弄清楚为什么“激活”不起作用。 –