0
段落を上に移動して変更しようとしました。innerHTMLをパラメータで変更する
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!";
}
残念ながらこれも私にとっては役に立ちません。 – Robbebeest
'this'値は' foo'を参照しません。 'ChangeText'を更新して' foo.innerHTML'を設定するか、[Function.prototype.call()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects)を使用してください。 /関数/呼び出し) 'foo'(' ChangeText.call(foo、 "Goodbye world!") ')に設定された' this'関数を呼び出します。 –