Чтобы передать обычную функцию в плагин jquery, а затем вызвать эту функцию внутри плагина?

Могу ли я передать обычную функцию js в плагин jquery и затем вызвать эту функцию внутри плагина?

(function($){

    $.fn.extend({ 

    responsive: function(options,callbacks) {

    var defaults = {
                setup:                      {},
                windowTargetWidth:          1903,
                beforeRespond:              function() {},
                onRespond:                  function() {},
                onElse:                     function() {}
            };

            var options =  $.extend(defaults, options);
            var o = options;

            var $this = this;

            return this.ready(function(e){

                var window_loaded_width = $(window).width();

                $(window).resize(function() {

                    options.beforeRespond(ratio);

                    // Make the website responsive
                    if(window_loaded_width < o.windowTargetWidth )
                    {
                        // call the function
                        setup.func;

                        //options.onRespond(ratio);
                    }
                    else
                    {
                        var window_resized_width = $(window).width();
                        var ratio =  window_resized_width/window_loaded_width; 

                        options.onElse(ratio);
                    }

                });


            });

        }
    });

})(jQuery);


$(window).responsive({
    setup: {
        func: responsive_element(ratio)
    },

    beforeRespond: function(ratio){

        // something happens...

    },

    onRespond: function(ratio){

        responsive_element(ratio);
    },
    onElse: function(ratio){

        responsive_element(ratio);
    }
});

function responsive_element(ratio){
    $("#container").css({
        "width": 5400 * ratio
    });
}

Конечно, я получаю ошибку -

соотношение не определено

для этой линии,

func: responsive_element(ratio)

Может я не так делаю?

Причина, по которой я хочу передать функцию и вызвать ее в плагине, заключается в том, что она повторяется responsive_element(ratio) дважды или больше, когда я присоединяю этот плагин к объекту $(window).responsive({...})

В идеале мне просто нужно вставить функцию один раз в setup или где-то - это возможно?

1 ответ

В вашем случае для вызова функции в вашем плагине используйте o.beforeRespond.call(this)

Другие вопросы по тегам