有条件地将选项传递给jquery函数

mst*_*tef 2 javascript jquery

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

有没有办法有条件地将选项传递给函数,如:

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

只是好奇什么是处理你可能希望根据情况通过不同选项的情况的最佳方法.谢谢!

Mih*_*ncu 10

如果它足够简单,您可以使用三元操作

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

如果它更复杂,你应该只在函数调用之外组合参数对象.

var parameters = {
    opacity: 60,
    height: '100px'
};
if(div.length)
    parameters.width = '350px';
$().demo(parameters);
Run Code Online (Sandbox Code Playgroud)