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 不正确。

4

3 回答 3

13

如果您使用的是 1.8,那么您希望使用changeandchangestart作为事件:

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

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

于 2013-01-24T14:58:26.007 回答
3

您是否确保并包含对jQueryUI库的正确引用?

内容分发网络

<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 参考后可以正常运行。

例子

于 2013-01-03T20:08:34.513 回答
0

activatebeforeActivate事件在 jQuery UI 1.8 中不存在,这解释了为什么警报没有触发。

正如 Shaz 所提到的,在 jQuery UI 1.8 中,这些事件被命名为changechangestart.

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

从 jQuery UI 1.9 开始,事件名称更改为activatebeforeActivate

https://api.jqueryui.com/1.9/accordion/

更多详细信息:

http://jqueryui.com/changelog/1.9.0/#accordion
Deprecated: changestart event; renamed to beforeActivate. (#6840, 088ef05, e0fe788) Deprecated: change event; renamed to activate. (#6842, 088ef05, e0fe788)

于 2018-04-05T15:49:32.537 回答