0

古いアーカイブ Web サイトの 1 つで見つけたサード パーティのスクリプトからかなり機能的なアコーディオンを持っています (したがって、自分のコーディングではありません)。

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

今、私はJavascriptの人ではありません.そして、ワンクリックでセット全体を開閉するグローバルトグルボタンを作成する方法を知りたいです.スクリプト内からメソッドを呼び出すことが可能です..私はやろうとしました

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

そしてまた

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

しかし、私のJSスキルはNULLに近いので、それを機能させることはできないようです..

プラグイン コード自体を変更することなく、すべてのレベルとアコーディオンへのグローバル トグル トリガーとなるこの関数内から Inside メソッドを呼び出す方法はありますか?

4

2 に答える 2

1

activate事実上プライベート関数であり、プラグインコードを変更せずにプラグインの外部から呼び出すことはできません。

それを公開するには、メソッド名を引数として受け入れるのが一般的です。(コードは単純化されており、通常はもう少しエレガントです。)

accordion: function(method, arg1, arg2, arg3) {
    return this.each(function () {
        if (method == "activate") {
            activate(arg1, arg2, arg3);
        }
       // ....
    })

これで、次のように呼び出すことができます。

 myAccordion.accordion("activate", $("ul"))

プラグインコードは縮小されているため(1文字の変数名)、activate関数がどのパラメーターを期待しているかわかりません。

于 2013-02-13T14:20:59.490 に答える