0
我有一個插件聲明像這樣。jquery插件其中輸入可以是選項,方法名稱或方法名稱與選項
(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 });
...我可以通過在任何我想要的作爲第二個參數,並有該參數傳遞給函數?