我想将参数传递给列表中的函数,而不必保持一定的顺序,并且只能传递一个参数,或者根本不传递参数,等等。
我认为代码基本上没问题,但由于某种原因,我收到消息说我的参数未定义,尽管函数传递带有参数的对象。
我错过了什么?
function positioning(options) {
var defaults = {
position: "static",
background: "lightblue",
height: "100px"
};
var params = $.extend({}, defaults, options);
var div1 = $('#div1'),
div2 = $('#div2');
console.log(options);
console.log(params);
console.log("position: " + position);
div2.css('position', position);
div2.css('background', background);
div2.css('height', height);
}
$('button').click(function() {
positioning({
height: "200px"
});
});
#div1 {
width: 100%;
height: 100px;
background: lightgrey;
}
#div2 {
width: 100%;
height: 100px;
background: lightblue;
top: 0;
left: 0;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="div1"></div>
<div id="div2"></div>
<button type="button">trigger function</button>
最佳答案
这些不是变量,而是 params
对象的属性。
改变
div2.css('position', position);
div2.css('background', background);
div2.css('height', height);
至
div2.css('position', params.position);
div2.css('background', params.background);
div2.css('height', params.height);
关于jquery - 命名参数 jQuery 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36642343/