В вашем цикле each()
вы можете объединить объект, возвращенный data () , с вашими значениями по умолчанию, а затем объединить аргумент opts
с результатом в одном вызове $.extend () :
$.fn.plugin = function(opts) {
return this.each(function() {
var thisOpts = $.extend({
foo: "abc",
boo: 45
}, $(this).data(), opts);
// Now use 'thisOpts' as operating parameters for this element...
});
};
Это должно обеспечить то, что вы хотите: аргумент opts
имеет наивысший приоритет, за ним следуют атрибуты data-
текущего элемента, за которыми следуют значения по умолчанию для плагина..