Не совсем понятно, что вы подразумеваете под «ничего не происходит». Вполне возможно, что вы ошибаетесь в своей реализации шаблона, и вы не указали какой-либо соответствующий код, поэтому мы не можем указать на это, но в вашей настройке есть один общий недостаток дизайна ,
Если вы используете шаблонную правильно, settings
свойство вашего плагина будет выглядеть следующим образом:
{
actions: [{"1_action":"1 action"}],
position: "left"
}
Я предполагаю, что вы ожидали actions
быть массивом с двумя объектами. Этот результат заключается в том, что вы указываете значение для actions
, и поэтому $.extend
, который используется в Plugin.prototype.init
, не использует значение по умолчанию.
Вы могли бы решить эту проблему, изменив эту строку в init
:
this.settings = $.extend({}, defaults, options);
к этому:
this.settings = $.extend(true, {}, defaults, options);
//^"deep" param
Установка deep
указывает, что $.extend
должны применяться рекурсивно. Но это не работает для массивов, так что вы также должны убедиться, что actions
является объектом:
var pluginName = "customHighlight",
defaults = {
actions: {"test_action":"Test action"},
position: "left"
};
Теперь, называя customHighlight
так:
$('div,p').customHighlight({
actions: {"1_action":"1 action"}
});
бы привести к settings
объект, который выглядит как это:
{
actions: {
"test_action": "Test action"
"1_action": "1 action"
},
position: "left"
}
Fiddle
Вам нужно включить код, в котором вы сочетать то, что был принят с использованием значений по умолчанию, и, возможно, как вы определить, что вы уже прошли. –
Там нет JSON. 'actions' - это массив. – Quentin