Добавление дополнительных функций в плагин jQuery - PullRequest
0 голосов
/ 29 января 2012

Я начинаю писать больше плагинов jQuery в своем собственном пространстве имен, чтобы я мог повторно использовать код и сохранять свой код СУХИМ.

Я новичок во всей разработке плагинов, но прочитал несколько источников, включая официальный jQuery.

Вот пример, с которым я поиграл:

(function($) {
    // jQuery plugin definition
    $.fn.reverseText = function(params) {
        $.fn.reverseText.test();
        // merge default and user parameters
        params = $.extend({
            minlength: 0,
            maxlength: 99999
        }, params);
        // traverse all nodes
        this.each(function() {
            console.log($(this).parent().data('url'));
            // express a single node as a jQuery object
            var $t = $(this);
            // find text
            var origText = $t.text(),
                newText = '';
            // text length within defined limits?
            if (origText.length >= params.minlength && origText.length <= params.maxlength) {
                // reverse text
                for (var i = origText.length - 1; i >= 0; i--) newText += origText.substr(i, 1);
                $t.text(newText);
            }
        });
        // allow jQuery chaining
        return this.each;

    };
    // Is this correct?
    $.fn.reverseText.test = function() {
    alert('test');
    };
})(jQuery);


$(function() {
    $(".js-test-whatever li:even").reverseText();
});

Обычно я создаю пространство имен, подобное этому:

 var a = {

    };

    a.reverseText = {
        init: function () {
         reverseText(); 
        });
    },

    reverse: function() {
     $(function() {
        return foo;
      });
    }

    a.reverseText.init();

Так, как правильно добавить несколько функций в пространство имен плагина jQuery?

Посмотрите на комментарий в первом примере, где я включил дополнительную функцию.

1 Ответ

1 голос
/ 29 января 2012

Это приемлемый способ сделать это.Другой способ сделать это может быть так:

(function($) {
    var reverse = {
        test: function () {
            alert('test');
        },

        fn: function(params) {
            reverse.test();

            /* the rest of your plugin code */
        }
    }

    // jQuery plugin definition
    $.fn.reverseText = reverse.fn
})(jQuery);

Не существует единственного «правильного» способа.Просто используйте все, что лучше всего подходит для проекта, над которым вы сейчас работаете.

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