jQuery UI Accordion激活
我没有得到如何做到这一点,或者如果我能做到这一点。 我有一个jQuery UI Accordion,多个部分,每个部分包含多个锚标记,每个锚标记都有一个唯一的字符串id。
我希望能够将手风琴打开到具有给定id的特定元素的位置。 比如说id“item117”。 我可以使用类似的东西吗?
$('#accordion').activate('activate','#item117');
甚至
$('#accordion').activate('activate',117);
我已经尝试了这些和一些变化,但无法让它去。 在我试图开始工作的情况下,手风琴应该打开到第二部分的末尾。
我还没有得到这个,所以也许我也做了别的错事。 我已将其删除到示例页面: http : //www.ofthejungle.com/testaccordion.php请查看它及其来源。
已经过了这个并找到了很好的通用解决方案
– 模拟按其ID 单击所需项目的标题
$('#header-of-item-258').click();
随时随地工作,而不仅仅是手风琴
从文档:
// getter var active = $( ".selector" ).accordion( "option", "active" ); // setter $( ".selector" ).accordion( "option", "active", 2 );
对我来说工作
$("#accordion").accordion({active:"h3:last"})
这最终对我有用:
$("#accordion").accordion("activate", $("#h3-id"));
注意!!! id必须是您要打开的
元素的id(在默认的折叠设置中)。
您需要使用名为accordion
的函数调用它:
// Open the third set (zero based index) $('#accordion').accordion('activate', 2);
要打开包含特定元素的部分,您可以执行以下操作。 注意:您需要定位通常打开和关闭该部分的触发器。 在docs中,这是一个h3
元素,你的触发元素可能不同,所以相应地改变它。
$('#accordion').accordion('activate', '#accordion > div:has(#item117) > h3');
用#id激活手风琴我遇到了同样的问题。 可悲的是,我没有找到办法,所以我创造了一个黑客。 我在手风琴中迭代div
元素,以获得有趣div
的索引。 它看起来像这样:
acc = 'tab-you-are-interested-in'; // find corresponding accordion act = 0; panels = $('#accordion-element > div'); for (i=0; i
当你点击标题时,它是h3元素,它打开下一个div ..这是function。 现在,对于activate,您需要提供索引或元素。 index可能与您的id不同。 所以我会用:
$('.selector').accordion('option', 'activate', $(h3#id));
如果您有索引,则可以使用它。但是大多数情况下,如果您动态创建了accordion,则获取id的索引并不容易。 你可以找到像这样的指数..
var processingHeaders = $('#accordion h3'); for (i = 0; i < processingHeaders.length; i++) { ids.push($(processingHeaders[i]).attr('id')); idsForLaterChecks.push($(processingHeaders[i]).attr('id')); }
现在我得到了ids ..使用indexOf:在数组中找到索引并使用它..
注意:// idsForLaterChecks是全局的
使用jQuery 1.9+:
$('#accordion').activate('activate', elementSelector);
就是现在:
$('#accordion').activate('option', 'active', elementSelector);
如果您发现使用遍历方法更容易,如果您有这样的HTML:
试试这个:
var myh3 = $('#item117').parent().prev('h3'); $('#accordion').accordion('option', 'active', myh3);
你也可以这样启用和禁用手风琴:
// Add the class ui-state-disabled to the headers that you want disabled $( ".whatyouwantdisabled" ).addClass("ui-state-disabled");
要重新激活选项卡:
// Remove the class ui-state-disabled to the headers that you want to enable $( ".whatyouwantenabled" ).removeClass("ui-state-disabled");
这是另一种方式。
在手风琴的每个H3标头标签中包含ID =“someId”,并将该ID命名为唯一。
例如,这个id将是’AccjA’系列,下一个h4将是’AccjB’:
A Fan?
然后激活您想要的任何面板:
$('#Accjoin').accordion('activate', '#AccjoinA')
使用Ben Alman的“.doTimeout”函数,我在超时时使用了上面的内容,以便在页面加载2秒延迟后引起用户注意:
$.doTimeout(2000, function () { $('#Accjoin').accordion('activate', '#AccjoinA') });
尝试
$('#accordion').activate('#item117');
要么
$('#accordion').activate(document.getElementById('item117'));
激活手风琴的正确语法是
$(".selector").activate(var index)
其中index是String,Element,boolean,Number,JQuery
什么是jquery API
激活手风琴中包含的第二个内容。
$(".selector").activate(1)
关闭手风琴的所有内容部分。
$(".selector").activate(false)
激活与给定表达式匹配的第一个元素。
$(".selector").activate("a:first")
$('#collapseOne').collapse('toggle');