使用参数更改innerHTML

时间:2017-12-26 16:43:41

标签: javascript parameter-passing

我尝试通过将鼠标悬停在其上来改变它。

HTML

<p id="foo"> Hello world! </p>

的Javascript

var foo = document.getElementById("foo");
foo.addEventListener("mouseover", ChangeText("Goodbye world!"));

function ChangeText(s) {
    this.innerHTML = s;
}

然而该段落在悬停时不会改变。省略参数并直接键入字符串,它确实有效。为什么呢?

var foo = document.getElementById("foo");
foo.addEventListener("mouseover", ChangeText);

function ChangeText() {
    this.innerHTML = "Goodbye world!";
}

1 个答案:

答案 0 :(得分:1)

addEventListener想要一个函数作为第二个参数;所以,如果你用一个参数调用一个函数,你可以写:

foo.addEventListener("mouseover", function(event){
        ChangeText("Goodbye world!",event.target)
     });

function ChangeText(s,target) {
    target.innerHTML = s;
 }