在这里,我试图通过回调使两个div变为红色。但是,它只适用于一个,而不适用于两者。
我知道,这可能不是一个非常聪明的问题,但我真的花了几个小时试图理解为什么它不起作用。
它出了什么问题?
<div id="foo">foo</div>
<div id="bar">bar</div>
<script>
function foo() {
document.querySelector("#foo").style.color = "red";
}
function bar() {
document.querySelector("#bar").style.color = "red";
}
foo(bar);
</script>
答案 0 :(得分:3)
当您致电foo(bar)
时,它会将函数bar
作为参数传递给foo
。但foo
并未列出任何参数,您也未在其中调用bar
。像这样更改foo
功能。
function foo(callback) {
document.querySelector("#foo").style.color = "red";
callback();
}
<强>更新强>
对于您的情况,此解决方案不是最佳做法。你想要完成的事情并不需要回调。您应该执行以下操作之一。
foo
和bar
。你应该避免在如此简单的情况下使用回调。
答案 1 :(得分:0)
你有两个功能但只调用一个:
foo(bar);
只会将bar
函数传递给foo
,而foo();
bar();
函数对它没有任何作用。
让这个工作调用两个函数:
user.keymap