【jQuery】プラグインでのオプション(オブジェクト形式)の初期設定方法を2通り
【その1】
今までは、こうしてました。
$.fn.testPlugin = function(options){
var options = options || {};
options.hoge1 = options.hoge1 || 'hoge1の初期値';
options.hoge2 = options.hoge2 || 'hoge2の初期値';
options.hoge3 = options.hoge3 || 'hoge3の初期値';
...
【その2】
でも、どう考えても、こっちのほうがわかりやすいですよね…。
$.fn.testPlugin = function(options){
var options = $.extend(
{
'hoge1':'hoge1の初期値',
'hoge2':'hoge2の初期値',
'hoge3':'hoge3の初期値'
},
options
);
...
【注意点】
しかし、気をつけなくてはならないのは、『jQuery.extend()』を使う場合は、初期値を使うつもりで空のプロパティを渡しては
いけない、ということです。
初期値ではなく、空白がオプションとして設定されてしまいます。
(検証ページ)
http://www.usamimi.info/~sutara/sample/jq_extend_test.html
【ダメな例】
$('#hoge').testPlugin({
'hoge1': '何らかのオプション',
'hoge2': '', //初期値を使うつもり ←空白がそのまま使用される
'hoge3': '何らかのオプション'
};
【こう書くべき】
$('#hoge').testPlugin({
'hoge1': '何らかのオプション',
'hoge3': '何らかのオプション'
};
//初期値を使うつもりなら、プロパティを定義しないこと!