使用参数[duplicate]更改innerHTML

问题描述 投票:0回答:1

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

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!";
}
javascript parameter-passing
1个回答
1
投票

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

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

function ChangeText(s,target) {
    target.innerHTML = s;
 }
© www.soinside.com 2019 - 2024. All rights reserved.