それで、これが取引です。私は onclick イベントを使用して関数を起動しているので、クリックするたびに div の元の innerHTML と別の変数を切り替えます。testfunction をコールバックとして割り当てると機能します。コードは次のとおりです。
var c = '';
function testfunction()
{
var a = this.innerHTML;
var b = 'blah';
if (a !== b)
{
c = a;
return this.innerHTML = b;
}
else
{
return this.innerHTML = c;
}
window.onload = function()
{
document.getElementById('rightcontent').onclick = testfunction;
}
c はグローバルスコープであるため、その値を保持していることを理解しています。しかし、私が理解していないのは、関数を匿名コールバックにそのまま入れたときに c が未定義に戻る理由です。
windows.onload = function()
{
document.getElementById('rightcontent').onclick = function()
{
this.innerHTML = testfunction();
}
}
これには意味がありません。私はただいじっているだけです...しかし、ボンネットの下で何が起こっているのか知りたいです.
これが他の場所でカバーされている場合は申し訳ありません。答えを見つけるためにいくつかの投稿を調べましたが、見つかりません。
前もって感謝します :-)