9

我有一个accordion这样的

<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);
});

我的控制台给了我这个错误

错误:手风琴小部件实例没有这样的方法“激活”

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

4

3 回答 3

27

我认为您正在寻找以编程方式打开手风琴窗格。如果是这样,你想要这样的东西:

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

(假设您使用的是 jQuery UI 库)

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

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

您的代码不起作用的原因是 jQuery UI 团队刚刚删除了activatev1.10 中的方法,并特别推荐使用我提供的方法:http: //jqueryui.com/upgrade-guide/1.10/#re ​​moved-activate-method -使用主动选项

于 2013-03-26T15:00:32.147 回答
-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/

于 2013-03-26T15:06:22.943 回答
-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 中使用 WAS 但在 1.10.x 中删除的方法 http://api.jqueryui.com/accordion/#option-active

于 2013-03-26T15:01:59.087 回答