У меня есть плагин, объявленный так.
(function ($) {
var settings = {
setting 1: undefined
};
var methods = {
init: function (options) {
var data = $(this).data('myPlugin');
if (!data) {
//initialize plugin
$(this).data('myPlugin', {
setting1: settings.setting1
});
}
},
doSomething: function() {
//...do some work
}
sendData: function(data) {
//TODO: Post data to the server
}
};
$.fn.myPlugin = function (options) {
if (methods[options]) {
return methods[options].apply(this, Array.prototype.slice.call(arguments, 1));
} else if (typeof options === 'object' || !options) {
methods.init.apply(this, arguments);
return methods.home.apply(this, arguments);
} else {
$.error('Method ' + options + ' does not exist in jQuery.myPlugin');
}
};
})(jQuery);
Это прекрасно работает, когда я использую это так
$('#myId').myPlugin({ setting1 : 'someValue' });
и когда я хочу сделать что-то вроде
$('#myId').myPlugin('doSomething');
но как я могу изменить приведенный выше код для поддержки этого ...
var myData = 'some data';
var moreData = 'some more data';
$('#myId').myPlugin('sendData', { data: myData, moreData: moreData } );
... где я могу передать в качестве второго параметра все, что захочу, и передать этот параметр в функцию?