Javascript初心者... css疑似クラス「アクティブ」に似た機能を追加しようとしていますが、バニラJavaScriptです。ボタンを押したときにボタンの色を変更し、ボタンを離すと元の色に戻そうとしています。ここに私が持っているものがあります:
myButton.addEventListener("mousedown", btnEvent);
myButton.addEventListener("mouseup", btnEvent);
...
btnEvent = function (e) {
var storedColor;
if (e.type == 'mousedown') {
storedColor= e.target.style.backgroundColor;
e.target.style.backgroundColor = someColorWhilePressed;
} else if (e.type == 'mouseup') {
e.target.style.backgroundColor = storedColor;
};
};
これは機能しません。マウスアップ時に「storedColor」が定義されていません。同じ関数オブジェクトが共有されておらず、2 つ作成されているためでしょうか。これはどのように行うことができますか?同じ要素にアタッチされた 2 つ以上のイベント リスナーが、呼び出し間でデータを保持できる共通のターゲット オブジェクト (関数) を共有することは可能ですか?
ありがとう。