2013-12-10 3 views
-3

Я новичок в jQuery. Некоторые плагины jQuery используют $.fn.extend(), которые я видел в документации jQuery api, но я не понимаю, когда я должен ее использовать или как.

Я видел, как он использовался в плагине skitter-slider. Я действительно хочу знать, как его использовать.

Буду благодарен, если кто-то может мне помочь. Заранее спасибо.

+1

ли вы читать документ ation: http: //api.jquery.com/jQuery.fn.extend/ – Yogesh

+1

Возможный дубликат [jquery plugin $ .extend] (http://stackoverflow.com/questions/1898402/jquery-plugin-extend) – Yogesh

+0

Подсказка : научиться использовать [так], это легко: [help] – brasofilo

ответ

1

, когда я буду использовать его и как

Если вы хотите, чтобы merge объектов. Например у вас есть

var A = { 
    foo: 42 
}; 

и

var B = { 
    bar: 21; 
}; 

Теперь вы хотите объединить B в A, чтобы создать

var A = { 
    foo: 42, 
    bar: 21 
}; 

Это делается

$.extend(A, B); 
+0

Я знаю, как использовать $ .extend(), но моя проблема заключается в том, как использовать jQuery.fn.extend, если я создаю плагины jQuery для OOP. –

+0

Возможно, вам стоит отредактировать свой вопрос и объяснить ваша проблема должным образом. Также включите некоторый пример кода. И FYI, '$ .extend' и' $ .fn.extend' - это одна и та же функция. –

+0

С $ .extend мы можем объединить 2 функции и с $ .fn.extend, мы можем сделать то же самое ... Я понимаю, спасибо! –

-1

Например, если у вас есть какие-либо плагин с конфигурацией, вы можете установить по умолчанию значения и дополнить это с $ .extend

Посмотрите на это:

(function ($) { 

    $.superPlugin = { 

     // plugin defaults 
     defaults: 
     { 
      mainClass: 'node', 
      orientation: 'vertical', 
      focusEvent: function (event) { 
       console.log('Focus!'); 
      } 
     }; 
    }; 

    // plugin code 
    $.fn.superPlugin = function (fn, options) { 

     var config = $.extend(true, {}, $.setSelect.defaults, options); 

     /** 
     * results: { 
     *  mainClass: 'node', 
     *  orientation: 'horizontal', 
     *  focusEvent: function (event) { 
     *   console.log('Custom focus event!'); 
     *  } 
     * } 
     */ 
    }; 

})(jQuery); 

// custom config 
var options = { 
    orientation: 'horizontal', 
    focusEvent: function (event) { 
     console.log('Custom focus event!') 
    } 
} 

// bind plugin to element 
$('.item').superPlugin(options); 
+0

Это хороший eXample, но не объясняет разницу. – Yogesh

Смежные вопросы