Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.04.2014, 19:53
Аспирант
Отправить личное сообщение для DeUM Посмотреть профиль Найти все сообщения от DeUM
 
Регистрация: 27.02.2013
Сообщений: 36

плагин, создание, jQuery
Доброго всем!
Создаю плагин на jQuery и столкнулся с проблемой при создании
$.myPlug = function(opts) {
var o = $.extend({
default1 : false,
default2 : true
}, opts);
console.log(default1+"|"+default2);
}

потом запускаю...
$.muPlug({default1 : true, default2 : false});
$.muPlug({default1 : false, default2 : true});

В логе почему-то указываются стандартные параметры и не меняются:
false|true
false|true

Где я неправ?
ps:
Кстати выставляю:
...
speed: 333,  //скорость анимации
...

А она меняется.

Последний раз редактировалось DeUM, 25.04.2014 в 22:41.
Ответить с цитированием
  #2 (permalink)  
Старый 25.04.2014, 23:56
Аватар для Makarov
Профессор
Отправить личное сообщение для Makarov Посмотреть профиль Найти все сообщения от Makarov
 
Регистрация: 08.07.2013
Сообщений: 212

Вероятно Вы неправы в своем представлении как работает extend.

Во-первых, насколько я понимаю, ваш код в сферическом вакууме отработать не должен, а должен ругнуться на строчку с консоль логом что default1 и default2 undefined - их присвоили где-то в другом месте, а вот эти постоянные false|true - это побочный эффект, приведенный код на них не влияет. По крайней мере когда я попытался создать фидл и посмотреть, произошло именно так)

Во-вторых, extend согласно документации - это просто мержилка всех объектов которые передали, в тот объект, который передан первым параметром. Просто если параметр один, она считает это укороченной формой записи и мержит его в $.
То есть чтобы записать в пространство $ результат мержа, а насколько я понял вы хотите этого, надо написать $.extend($,obj1,obj2);

Впрочем я совсем не жукверист, могу ошибаться =)
Ответить с цитированием
  #3 (permalink)  
Старый 26.04.2014, 08:11
Аспирант
Отправить личное сообщение для DeUM Посмотреть профиль Найти все сообщения от DeUM
 
Регистрация: 27.02.2013
Сообщений: 36

Makarov,
Вот мой вариант кода:
$.slide_ = function(o) { // и вот в чем странность...
        var o = $.extend({
            obj: '', // эти...
            objBody: '', // данные...
            objClick: '', // меняются
            activeClick: false, // "этот" нет
            objActive: true, // а это работает о_О
            onOpen: function(){},
            onClose: function() {},
            speed: 300
        }, o);
    }

В общем похоже "activeClick" "загажен".
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ни один скрипт и плагин не видит Jquery razorg1991 jQuery 5 30.03.2014 14:51
плагин jquery ajax upload Karabella jQuery 0 06.06.2013 21:25
Создание плагина для jQuery 1.9.1 (Sandr) jQuery 8 08.03.2013 19:18
Плагин jQuery form. Добавляю форму js'ом Physicist jQuery 3 21.07.2011 17:46
syncTranslate jQuery плагин Snowcore Ваши сайты и скрипты 0 20.10.2009 19:00