私は "ボタン"のIDを持つdivがあります。私は(CSSのホバーセレクターを使用せずに)ホバリングするとその背景が青くなるように変更しようとしています。Javascript addEventListener - マウスオーバー効果を作成するために使用しますか?
var item = document.getElementById("button");
item.addEventListener("mouseover", func, false);
function func()
{
var item = document.getElementById("button");
item.setAttribute("style", "background-color:blue;")
}
これは、しかし、唯一私が置くと青にアイテムの色を設定しますが、私は離れてマウスを移動した後、白にリセットされません。どうすれば修正できますか? (btw、mouseenterとmouseleaveはこれと一見してうまくいかない)。
ああ...素晴らしい!私は自分のdivの中にイメージを持っていて、それは "外に"それをマスクする方法はまだそれがボックス内だと思うように考えていますか? – antonpug
はい、mouseoverイベントとmouseoutイベントは子供からのすべてのイベントをキャッチします(そして、それらはバブルアップします)。関数では、イベントパラメーターのrelatedTarget(W3C)またはtoTarget/fromTarget(IE)プロパティーを比較する必要があります。詳細はこのリンクをご覧ください:http://www.quirksmode.org/js/events_mouse.html#relatedtarget – AndrewR
親コンテナだけをキャプチャし、子要素から何も処理しないことはたくさんあります。そうでない特別な理由がない限り、jQueryの 'hover()'関数を使ってコードを単純化することができます。 – AndrewR