- ベストアンサー
イベントハンドラを外部ファイルに分離させた場合のevent.targetやevent.srcElementの挙動について
- イベントハンドラを外部ファイルに分離させた場合、Firefoxで動作しない問題が発生します。
- イベントハンドラをfunction()からfunction(event)に変更すると、Firefoxでの動作は修正されますが、Internet Explorerでは動作しなくなります。
- FirefoxとInternet Explorerの両方で動作するようにするには、条件分岐を追加して、event.targetとevent.srcElementの両方を考慮した処理を行う必要があります。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんなんでどうでしょう。↓(マウスオーバーとマウスアウトは同時に補足出来ます) <script type="text/javascript"> <!-- $(function() { if('undefined' !== typeof document.addEventListener){ document.addEventListener('mousemove',listener,false); }else if ('undefined' !== document.attachEvent){ document.attachEvent('onmousemove',listener); } function listener(event){ var target = event.target || event.srcElement; switch(event.type){ case "mousemove": var outtarget = event.relatedTarget || event.fromElement; if (target == document.getElementsByTagName('div')[0]){ alert("マウスが入ったのは" + target.tagName); if(outtarget != null) alert("マウスが出たのは" + outtarget.tagName); } break; } } }); // --> </script>
その他の回答 (1)
- yyr446
- ベストアンサー率65% (870/1330)
No.1 訂正 'mousemove' でなく 'mouseover' でしたね。 それから、$(function(){ って、jQuery使ってるなら $(function() { $("div:eq(0)").mouseover(function(){ alert($(this).get(0).tagName); }); }); だけでしょう...
お礼
できました!ありがとうございます!