文書の任意の場所をクリックすると、ページに警告を表示するタスク例が見つかりました。このタスクでは、myFuncとmyObjの2つのパラメータを持つdisplay()関数のみを編集して、personオブジェクトの名前を表示する必要があります。私はこのようなことを思いついたが、警告はページが更新された後にのみ表示され、ドキュメントをクリックするたびに表示されるというわけではない。ここclick eventListenerに関する問題
function start() {
var person = {
name : "John"
};
function alertName() {
alert(""+this.name.toUpperCase() + "");
}
document.addEventListener('click', display(alertName, person));
}
function display(myFunc, myObj) {
name = myObj.name;
myFunc();
}
start();
はフィドルです:
function start() {
var person = {
name : "John"
};
function alertName() {
alert(""+this.name.toUpperCase() + "");
}
document.addEventListener('click', start(alertName, person));
}
function display(myFunc, myObj) {
name = myObj.name;
myFunc();
}
start();
body {
background-color:yellow;
}
<body>
</body>
これはイベントリスナーの仕組みではありません。コールバックのパラメータを選択する必要はありません。さらに、このようにすると、引数を含めるため、イベントlistener_を宣言した時点で関数が実行されます。関数に_referenceを渡す必要があります。技術的に何をしているのかは、display()function_の_resultをコールバック引数として渡すことです。その関数は何も返さないので意味がありません。あなたが存在しない関数を呼び出し、ここのサンプルと一致しないので、あなたのフィドルは機能しません。投稿前にあなたのものをチェックしてください:-) – ADyson
そこにjqueryはありません - あなたはjqueryまたはjavascriptを単独で使うつもりでしたか? –