在不知道它们是什么的情况下定位 JQuery UI 手风琴的实例

Targeting instances of JQuery UI Accordion without knowing what they are

我有一个网站在不同的页面上使用 jquery UI 手风琴。这些手风琴的脚本在每种情况下都在页面上。

我们正在研究所有页面的每日站点打印,因此我们需要在进行站点打印时完全展开这些手风琴(我们将通过检测站点打印机的 userAgent 字符串来执行此操作,因为它们可以发出自定义一个)。

站点打印机可以停止在页面上执行 javascript 以保持内容完全展开,但我们也使用 AJAX 脚本来阻止内容加载。

所以我们需要一个脚本来定位页面上的任何 jquery 手风琴并使它们完全展开。我们有一个存在于所有页面上的 custom.js 文件,因此我们可以在其中放置一个命令。

我的问题是,是否可以在不知道手风琴对象的所有实例的情况下将其作为目标?我正在考虑将脚本放入 custom.js 文件,而不是必须逐页重写所有 JQuery 手风琴调用(并试图让每个向站点添加内容的人也记住在每次使用手风琴时编写基于条件的 userAgent 扩展) .

在不查看您的代码或对当前 HTML 一无所知的情况下,您可以尝试这样的操作:

$(".ui-widget.ui-accordion").each(function(index, elem){
  // Code that you want to execute on each Accordion
  // For example, we could disable each one:
  $(elem).accordion("disable");
});

我没有看到一次展开所有面板的方法。您可能必须 activate 每个面板。

找到这个:jQuery UI Accordion Expand/Collapse All

建议使用theming使手风琴看起来正确,然后滚动自己的能力来展开所有。