【问题标题】:How to stop a jQuery accordion change event when recreating it?如何在重新创建 jQuery 手风琴更改事件时停止它?
【发布时间】:2011-09-26 09:24:21
【问题描述】:
我在三个不同的 dom 元素中有三个不同的手风琴,当我通过单击移动按钮以编程方式将一个手风琴部分移动到另一个手风琴部分时,我正在重新创建页面上的所有手风琴。我希望在移动的手风琴中打开/展开选定的手风琴。但移动的手风琴有时会折叠,有时会展开。我认为这种情况正在发生,因为在重新创建手风琴之后,它会触发更改事件并折叠。
任何人都可以提出一个解决方案,如何在重新创建手风琴后停止手风琴更改事件。我已经在使用this post中的建议了
【问题讨论】:
标签:
javascript
jquery
jquery-ui
【解决方案1】:
将手风琴选项存储在一个变量中,以便您可以反复使用它。
然后,当您销毁手风琴时,设置您想要打开/激活的窗格(整数):
accord_options.active = 3; // This is the number value of the accordion pane you want open. Accordion panes start at 0.
$selector.accordion('destroy').accordion(accord_options);
如果您需要进一步控制手风琴何时触发,您可以在手风琴选项中使用空事件:
accord_options = {
event: '',
...
然后创建一个函数来处理手风琴点击:
$('#accordion_1 h3').click(function()
{
if (something_happens)
{
// we don't want the accordion to activate here
return false;
}
// to activate an accordion pane:
$selector.accordion('activate', $('#accordion_1 h3').index(this));
return false;
}
将您自己的代码添加到上述单击方法中,以处理是否要激活手风琴窗格。