【发布时间】:2016-04-15 08:44:19
【问题描述】:
我想将参数传递给列表中的函数,而不必保持一定的顺序并且只能传递一个参数,或者根本不传递参数等等。
我认为代码大部分都可以,但由于某种原因,我得到了我的参数没有定义的消息,尽管函数传递了带有参数的对象。
我错过了什么?
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>
【问题讨论】:
-
console.log("position: " + params.position);,在您的函数范围内没有名为position的变量,而是paramsobejct 的属性