jQuery pluggin - > Zepto;$.fn.продлить неопределено


Я новичок в zepto и использую его в качестве замены jQuery для мобильной части веб-сайта.

Итак, у zepto нет $.fn.расширять. Ладно, это меня устраивает, но мне нужно, чтобы мой pluggin работал независимо от jquery или zepto.

Что такое альтератив zepto для fn.продлить? Как бы вы пошли на создание перекрестного расширения библиотеки? Я еще не нашел никаких документов на этот счет.

 $.fn.extend({
     lineRedNAddClass : function(option){
         $(this).css('border','red 1px solid').addClass(option);   
     }
 });

Можно ли это сделать, чтобы работать с обоими из одного и того же сценария?

2 4

2 ответа:

Функция расширения Zepto может быть доступна через $.extend(), которая также доступна в API jQuery, поэтому мы можем просто расширить $.fn с помощью этого.

Пример:

$.extend($.fn, {
    myFunc: function() {
        $(this).css({
            color: 'red'
        });
    }
});

А вот демо-версия. Я загрузил обе библиотеки в активы, поэтому просто переключите значение$, используя две верхние строки. Там есть consle.log, чтобы доказать, что правильная библиотека загружена.

Http://jsfiddle.net/WNTXY/

Другими словами, чтобы некоторые плагины jquery работали с zepto, я добавил Эти 2 строки в конец моего zepto.js:

jQuery = Zepto;
$.fn.extend = function(obj) {
    $.extend($.fn, obj);
};