プラグインを使用していると、次のようなプラグインに出くわすことがあります。
- コンストラクタ引数を取ります。
- 一部のパラメータは関数に解決されます。
- それらのいくつかは、複数の引数を取ります。
このような:
{
color: function (someData, moreData) {
return someData + moreData;
}
}
その関数に 2 つの引数を渡すにはどうすればよいですか?
注: プラグインを変更できないため、2 番目の引数を別のコンストラクター引数に移動することはできません。
サンプル 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"