我希望标题在重新调整窗口大小时更改它的颜色。但是在我加载网站后,changeColor()会立即运行。谁能解释一下,为什么我的changeColor()函数在窗口重新调整大小之前运行?
<body>
<h1>JavaScript</h1>
<script>
var heading = document.querySelector("h1");
function changeColor(colour) {
heading.style.color = colour;
}
window.onresize = changeColor("red");
</script>
</body>
&#13;
答案 0 :(得分:1)
您正在以自己的方式执行“changeColor”功能。
试试这个:
<body>
<h1>JavaScript</h1>
<script>
var heading = document.querySelector("h1");
function changeColor(colour) {
heading.style.color = colour;
}
window.onresize = function() {
changeColor("red")
};
</script>
</body>
答案 1 :(得分:0)
您要将changeColor
的通话结果分配给window.onresize
,而不是功能changeColor
本身。您的代码相当于:
var temp = changeColor("red"); // undefined, because changeColor doesn't return anything
window.onresize = temp;
您可以做的是创建一个函数,该函数返回一个使用所需颜色的函数:
function createColorChangeCallback(color) {
return function() {
heading.style.color = color; // color variable captured from enclosing function
};
}
window.onresize = createColorChangeFunction("red");
或者您可以使用.bind
或lambda:
window.onresize = function() {
changeColor("red");
};
这两者都相当于:
window.onresize = function() {
heading.style.color = "red";
};
答案 2 :(得分:0)
您正在调用该函数。
使用它:
window.onresize = changeColor.bind(this,"red");
现在,你的程序执行是:
changeColor(红色) - &gt;将其返回值分配给window.onresize
答案 3 :(得分:0)
你应该尝试这样的事情,这应该可以解决问题
<body onresize="changeColor('red');">
答案 4 :(得分:0)
Glide.with(context).load(holder.imageview)
.placeholder(R.drawable.logo).centerCrop()
.into(holder.imageview);
试试这个......