1. ホーム
  2. jquery

[解決済み] jQueryプラグイン。コールバック機能の追加

2023-04-21 21:15:14

質問

プラグインにコールバック機能を持たせようとしていますが、ある程度伝統的な方法で動作するようにしたいと思います。

myPlugin({options}, function() {
    /* code to execute */
});

または

myPlugin({options}, anotherFunction());

コードの中でそのパラメータをどのように扱えばいいのでしょうか?それは1つの完全な実体として扱われるのでしょうか?実行コードをどこに配置するかはよく分かっていますが、コードを実行させるにはどうしたらよいのでしょうか。このトピックに関する多くの文献を見つけることができないようです。

どのように解決するのですか?

プラグイン内でコールバックを実行するだけです。

$.fn.myPlugin = function(options, callback) {
    if (typeof callback == 'function') { // make sure the callback is a function
        callback.call(this); // brings the scope to the callback
    }
};

オプションオブジェクトにコールバックを持たせることもできます。

$.fn.myPlugin = function() {

    // extend the options from pre-defined values:
    var options = $.extend({
        callback: function() {}
    }, arguments[0] || {});

    // call the callback and apply the scope:
    options.callback.call(this);

};

このように使います。

$('.elem').myPlugin({
    callback: function() {
        // some action
    }
});