在使用插件时,我有时会偶然发现一个类似这样的插件:
- 它将采用构造函数参数。
- 一些参数解析为函数。
- 其中一些需要多次争论。
像这样:
{
color: function (someData, moreData) {
return someData + moreData;
}
}
如何将两个参数传递给该函数?
注意:我无法更改插件,因此不能将第二个参数移动到另一个构造函数参数。
示例 JavaScript:
(function ($) {
$.fn.greenify = function (options) {
var settings = $.extend({
color: function (someData, moreData) { // <-- THIS TAKES 2 ARGUMENTS!
return someData + moreData;
},
}, options);
return this.css({
color: settings.color,
});
};
}(jQuery));
$("#target1").greenify({
color: "blue"
});
$("#target2").greenify({
color: ["bl", "ue"] // <-- In your answer only this should be changed
});
我的目标:
<div id="target1">My Thing</div> // <-- will be blue
<div id="target2">My Thing2</div> // <-- will be black but should be blue
更新: 我误以为这段代码
$("#target1").greenify({
color: "blue"
});
会将值作为第一个参数"blue"
传递给。这是假的!实际发生的是默认回调 ( ) 完全被字符串替换!function (someData, moreData)
someData
function (someData, moreData)
"blue"