回调函数的方法

时间:2016-08-06 22:03:25

标签: javascript callback

在这里,我试图通过回调使两个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>

2 个答案:

答案 0 :(得分:3)

当您致电foo(bar)时,它会将函数bar作为参数传递给foo。但foo并未列出任何参数,您也未在其中调用bar。像这样更改foo功能。

function foo(callback) {
    document.querySelector("#foo").style.color = "red";
    callback();
}

<强>更新

对于您的情况,此解决方案不是最佳做法。你想要完成的事情并不需要回调。您应该执行以下操作之一。

  • 将这两个功能合并为一个。
  • 一起致电foobar

你应该避免在如此简单的情况下使用回调。

答案 1 :(得分:0)

你有两个功能但只调用一个:

foo(bar);

只会将bar函数传递给foo,而foo(); bar(); 函数对它没有任何作用。

让这个工作调用两个函数:

user.keymap