我正在寻找一种方法来将默认数值设置为我的插件的默认参数,或者可以选择通过ajax调用来检索默认值。换句话说:
var defaults = {
param1: 1000,
totalTime : null // the default value i'm looking for in seconds
}
那样:
$('.test').myPlugin({
param1: 1000,
totalTime: function () {
$.ajax({
url: 'totaltime.php',
type: 'POST',
success: function(data) {
// retrieve value here
}
});
}
});
OR
$('.test').myPlugin({
param1: 1000,
totalTime: 200 // numerical
});
我最近才开始玩插件,发现这是一个有趣的概念,但我遇到了一些麻烦。这是我的插件现在的样子(新插件的基本设置)。
(function($) {
$.fn.myPlugin = function(options) {
var plugin = this;
var defaults = {
param1: 1000,
totalTime : null
}
plugin.init = function() {
plugin.settings = $.extend({}, defaults, options);
plugin.timer();
}
plugin.settings = {}
plugin.timer = function() {
}
plugin.init();
return this;
};
})(jQuery);
答案 0 :(得分:1)
只需定义您的默认值:
var defaults =$.extend( {
param1: 1000,
totalTime : null
},options);
然后您可以像defaults.param1
或defaults.totalTime
更新:
以上示例是如何将totalTime值数值设置为默认值。
如果您想在插件中更改它,那么您可以这样做:
defaults.totalTime=500;
或
defaults.totalTime=givenVal; //givenVal is a variable that contains the value
同样在你的jQuery代码中,你可以将totalTime设置为:
$('#test').myPlugin({
totalTime:500
});
或
$('#test').myPlugin({
totalTime:givenVal
});
所以你现在应该做的就是从ajax中获取值,将它放在一个变量中,并将其传递给你的插件,如上所述!
答案 1 :(得分:0)
@AminJafari已指出如何正确定义默认值。下面是如何使用ajax请求中的值调用插件。 注意:totalTime callback
必须返回一个值,并且该值必须可以返回。 - 这意味着它必须在success
回调中完成ajax请求:
$.ajax({
url: 'totaltime.php',
type: 'POST',
success: function(data) {
$('.test').myPlugin({
param1: 1000,
totalTime: function () {
// retrieve value here
return data.timeValue; //for example
}
});
}
});