gpt4 book ai didi

javascript - JS -Jquery - 从 Jquery 插件内部调用方法

转载 作者:行者123 更新时间:2023-12-02 19:00:16 25 4
gpt4 key购买 nike

我有一个非常实用的 Accordion ,来 self 在旧存档网站之一上找到的第 3 方脚本(因此不是我自己的编码)。

http://jsfiddle.net/obmerk99/Rm8Py/1/

现在,我不是 Javascript 人员,我想知道如何制作一个全局切换按钮,一键打开/关闭整个集合,可以从脚本内部调用方法..我尝试这样做

jQuery(this).accordion().activate(this, 'toggle', 'parents');

也只是

jQuery('ul').accordion().activate();

但是由于我的 JS 技能接近 NULL ,所以我似乎无法做到这一点..

有没有一种方法可以从此函数中调用某些内部方法,该方法将成为所有级别和 Accordion 的全局切换触发器,而无需更改插件代码本身?

最佳答案

我不确定我是否理解; Accordion 的全部要点是一次仅打开一个 Pane ,并且切换代码强制执行这一点。修改该插件以在所有 UL 上调用其 activate 辅助函数并不太难,但当它打开每个 Pane 时,它将关闭所有其他 Pane ,从而破坏自身。

此外,您不想切换所有 Pane ,因为有些 Pane 是关闭的,有些是打开的,因此切换每个 Pane 并不能实现它们全局打开或关闭。

相反,您必须直接操作 DOM,绕过 Accordion 的逻辑。当您单击“切换”链接时,这将打开所有 Pane :

jQuery("#toggle").click(function(){$("ul").slideDown()});

要真正使其切换,请尝试以下操作:

(function(){
var isClosed = true;
jQuery("#toggle").click(function(){
if (isClosed) {
jQuery("ul").slideDown();
}
else {
jQuery("ul").find("ul").slideUp();
}
isClosed = !isClosed;
});
})();

fiddle :http://jsfiddle.net/Rm8Py/2/

关于javascript - JS -Jquery - 从 Jquery 插件内部调用方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14854913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com