вызов внутренней функции плагина - PullRequest
1 голос
/ 03 октября 2010

Вот мой плагин

(function($){
    $.fn.myPlugin = function(options){

        var defaults = {
            width: 800
        };

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

        var self = this;

        function init(obj){
            /*Initialize object*/
            self.myPlugin.doAnimation(600,400);
        }

        $.fn.myPlugin.doAnimation = function(lV, rV){
            /*Doing some animation work*/
        }           

        return this.each(function(options){
            init(this);
        });         
    }
})(jQuery);

Я пытаюсь вот так

var t = $('#id1').myPlugin();
t.doAnimation();  //getting error here, t.doAnimation is not a function

1 Ответ

1 голос
/ 03 октября 2010

Вы не можете.Вы не вернете плагин.Вы возвращаете объект jQuery с соответствующими элементами (как вы, вероятно, должны).В любом случае, функция testing является закрытой для функции myPlugin.

Чтобы вызвать метод для объекта jQuery, вам необходимо расширить jQuery, как это было сделано для myPlugin(), например:*

function($){
    $.fn.myPlugin = function(options) {
        ...
    }
    $.fn.testing = function(options) {
        ...
    }
})(jQuery);

Конечно, это будет полностью отделено от исходного плагина.

Я не знаю, что делает ваш плагин, но если вам нужно поделиться некоторыми данными между плагинами на элементоснова, вы могли бы, вероятно, использовать метод jQuery .data().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...