jQuery手风琴激活无效

9

我有一个像这样的 手风琴

<div id="accordion">
    <h3 id="idname1">text</h3>
    <div>
        Text TEXT text
    </div>
    <h3 id="idname2">text</h3>
    <div>
        Text TEXT text
    </div>
    <h3 id="idname3">text</h3>
    <div>
        Text TEXT text
    </div>
</div>

现在我希望人们点击一个链接(页面顶部),然后打开面板,这样其他人就可以看到它了,每次调用我的函数时都是如此。

$('.myclass').click(function() {
    // this is to open the right pannel 
    var getal = $(this).attr('id');
    alert(getal); // i get the right name

    $("#accordion").accordion('activate', 1);
});

我的控制台出现了这个错误:

错误:对手风琴小部件实例没有“activate”方法

我不知道问题出在哪里,我尝试了很多不同的方法,但都没用。

1
你还没有告诉我们你正在使用哪个手风琴插件。'activate'是一个有效的方法吗? - isherwood
3
我开始觉得有人有点过于喜欢给人“踩票”了…… - Dom
3个回答

27

我觉得你想要通过编程来打开手风琴面板。如果是这样的话,你需要像这样做:

$("#accordion").accordion("option", "active", 1);

(假设您正在使用jQuery UI库)

http://api.jqueryui.com/accordion/#option-active

请注意,这将打开第二个手风琴窗格,因为选项接受基于0的整数(0是第一个,1是第二个等)。因此,请确保向方法调用传递正确的整数:)

您的代码无法工作的原因是jQuery UI团队在v1.10中刚刚删除了activate方法,并明确建议使用我提供的内容:http://jqueryui.com/upgrade-guide/1.10/#removed-activate-method-use-active-option


2
我也被折叠方法的移除所困扰 - 感谢您的提醒。 - David Keaveny

-1

像这样激活它

$( "#accordion" ).accordion( "option", "active", 0 );

只需使用相应的方法即可启用/禁用。

$("#accordion" ).accordion( "enable" );
$("#accordion" ).accordion( "disable" );

在第一次初始化后访问手风琴的选项,请使用选项对象。

$("#accordion").accordion( "option", "disabled", true ); // set
var x = $("#accordion").accordion( "option", "disabled"); // get

看看这个API http://api.jqueryui.com/accordion/


-2

这应该可以工作,但它不会有动画效果:

$('.myclass').click(function () {
         // this is to open the right pannel 
         var getal = $(this).attr('id');
         alert(getal); // i get the right name

         $("#accordion").accordion('option', 'active', 1);
     });

你尝试使用的方法在1.9.x中存在,但在1.10.x中已被删除。 http://api.jqueryui.com/accordion/#option-active


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接