#jquery #plugins
#jquery #Плагины
Вопрос:
У меня есть следующий код:
$.fn.newActivity = function(ops) {
var defaults = {
name: "activityNew",
actionBar: "true"
};
var ops = $.extend( {}, defaults, ops);
var newElem= $("<div>");
newElem.addClass(defaults.name);
return this.append(newElem);
};
Теперь, когда я вызываю плагин следующим образом:
$("body").newActivity({
name: "menu",
actionBar: "false"
});
Новые параметры, которые я устанавливаю при вызове плагина, не переопределяют параметры по умолчанию. Что у меня не так в моем коде, пожалуйста. Я искал в Google и до сих пор не могу найти ошибку в своем коде.
Дополнительная информация Когда я запускаю код, я ожидаю div
, что элемент будет добавлен к body и будет иметь класс menu
.
Комментарии:
1. Здесь все работает нормально: jsfiddle.net/4XKSt . Можете ли вы расширить проблему, с которой вы столкнулись?
2. Он работает правильно, на скрипке выше, в чем проблема?
Ответ №1:
Это потому, что вы используете default
object var, а не the ops
, попробуйте вместо этого использовать ops.
ops
будет содержать переданные параметры, расширенные с помощью значения по умолчанию, указанного в коде плагина.
Код:
$.fn.newActivity = function(ops) {
var defaults = {
name: "activityNew",
actionBar: "true"
};
var ops = $.extend( {}, defaults, ops);
var newElem= $("<div>");
newElem.addClass(ops.name);
return this.append(newElem);
};
$("body").newActivity({
name: "menu",
actionBar: "false"
});
Демонстрация: http://jsfiddle.net/4hn3Q /