расширение jquery с помощью универсальной функции - PullRequest
1 голос
/ 10 марта 2011

Я пишу универсальную функцию для моего сайта с использованием jquery, которая будет использоваться по всему сайту для отображения сообщения об успехе / ошибке.Я решил сделать его плагином.

Ниже приведена простая форма плагина:

; (function ($) {
        jQuery.FlashMessage=function(msg){
            alert(msg);
        }

})(jQuery);

Я хотел знать, является ли хорошей практикой определение плагинов в пространстве имен jqueryили это должно быть определено в $ .fn.XXXX .. или я слишком много думаю, и это не имеет значения вообще.

Ответы [ 3 ]

4 голосов
/ 10 марта 2011

Вы добавляете те функции к jQuery.fn, которые должны запускаться на выбранных элементах, например, $('div').yourFunction().

Если вам нужна «универсальная» функция, такая как $.ajax(), то вы должны добавить ее к объекту jQuery, как вы уже сделали. Но я бы использовал $ внутри функции:

(function ($) {
        $.FlashMessage=function(msg){
            alert(msg);
        }

})(jQuery);

Так что это зависит от того, какую функциональность вы хотите.

2 голосов
/ 10 марта 2011

jQuery.fn эквивалентно jQuery.prototype

с jQuery.fn.FlashMessage вы можете сделать

 jQuery.fn.FlashMessage=function(){
    return this.each(function(){
        //do some thing
    });
  });


//use like this, your chaining is secured    
jQuery('#someElement').FlashMessage().DoSomeThingElse().SomethingMore();

если вы обеспокоены тем, что модифицируете только один элемент, чем зачем использовать jQuery.FlashMessage, сделайте это как myNameSpace.FlashMessage

0 голосов
/ 10 марта 2011

Как правило, плагины в пространстве имен fn возвращают объект jQuery для обеспечения возможности объединения.Также они применяются к jQuery.prototype, поэтому все объекты jQuery могут вызывать его.

Посетите эту страницу, чтобы получить очень хороший обзор по разработке плагинов: http://docs.jquery.com/Plugins/Authoring

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