Учитывая такую структуру:
(function($) {
var defaults = {
dragDelay: 200, // tap/hold this long to activate dragging
feedback: 'glow', // feedback to show drag mode (glow/pulsate)
glowColor: '#fff' // color of the glow if feedback==glow
};
var methods = {
init: function(options) {
return this.each(function() {
options = $.extend({}, defaults, options);
var $this = $(this);
$this.bind('click', methods.doSomething);
});
},
doSomething: function(e) {
//...
}
};
$.fn.myPlug = function(method) {
if (methods[method])
return methods[method].apply(this,
Array.prototype.slice.call(arguments, 1));
else if (typeof method === 'object' || !method)
return methods.init.apply(this,
arguments.length > 0 ? arguments : [defaults]);
else
$.error("TypeError: Plugin 'myPlug' has no method '" + method +
"'");
}
})(jQuery);
Желательно ли использовать $(this).data()
для хранения данных или this.someVar = x
?Кроме того, как я могу получить метод init () для совместного использования 'параметров' с остальными методами?