2
$.fn.demo = function(options) {
    var defaults = {
        opacity: 50,
        width: '250px',
        height: '100px',
        color: 'red'
    }
  }

次のように、オプションを条件付きで関数に渡す方法はありますか?

$().demo({
opacity: 60,
if (div.length){
    width: '350px'
}
height: '100px'
});

状況に応じてさまざまなオプションを渡したい状況を処理するための最良の方法は何でしょうか。ありがとう!

4

2 に答える 2

12

十分に単純な場合は、三項演算を使用できます

$().demo({
    opacity: 60,
    width: div.length ? '350px' : '250px',
    height: '100px'
});

より複雑な場合は、関数呼び出しの外でパラメーター オブジェクトを構成する必要があります。

var parameters = {
    opacity: 60,
    height: '100px'
};
if(div.length)
    parameters.width = '350px';
$().demo(parameters);
于 2012-06-27T15:50:24.723 に答える
4
$.fn.demo = function(options) {
    var defaults = {
        opacity: 50,
        width: '250px',
        height: '100px',
        color: 'red'
    };
    options || (options = {});
    defaults = $.extend(defaults, options);
    ... function body...
}

拡張を使用すると、デフォルトが上書きされ、存在する場合は任意のデータが追加されます。

于 2012-06-27T15:50:40.130 に答える