jQuery аккордеон активировать не работает

у меня есть 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>

Теперь я хочу, чтобы люди щелкнули ссылку (в верхней части страницы), а затем эта панель откроется en люди будут видеть его теперь каждый раз, когда я вызываю свою функцию

$('.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);
});

моя консоль дает мне эту ошибку

ошибка: нет такого метода "активировать" например виджет accordion

Я не знаю, в чем проблема я пробовал много разных вещей, но никто не работал.

3 ответов


Я думаю, что вы хотите открыть панель аккордеона программно. Если да, то вы хотите что-то вроде этого:

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

(предполагая, что вы используете библиотеку пользовательского интерфейса jQuery)

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

обратите внимание, что это открывает вторую панель аккордеона, так как параметры принимают целое число на основе 0. (0-первый, 1-второй и т. д.). Поэтому просто убедитесь, что вы передаете правильное целое число вызову метода :)

причина, по которой ваш код не будет работать, заключается в том, что команда jQuery UI просто удалила activate метод в v1.10 и конкретно рекомендую использовать то, что я предоставил: http://jqueryui.com/upgrade-guide/1.10/#removed-activate-method-use-active-option


активировать вот так

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

чтобы просто включить/отключить использование методов для этой цели.

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

для доступа к параметрам аккордеона после первого инициализации используйте объект options.

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

посмотрите на API http://api.jqueryui.com/accordion/


Это должно работать, однако оно не будет анимировать:

$('.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.икс http://api.jqueryui.com/accordion/#option-active