Javascriptを使用すると、ユーザーが要素の上を移動したとき、またはユーザーが要素をクリックしたときにカスタムイベントを発生させることができます。しかし、Javascriptはクリックイベントを受け取る要素をどのように知っていますか?例えばブラウザはクリックまたはホバーイベントを取得する要素をどのように知っていますか?
このようなHTML要素:
<div style="width: 300; height: 300;">
<a href="hello">Hello World</a>
</div>
私はリンクをクリックすると、ブラウザはそのリンクに接続されたすべてのクリックイベントを実行するために知っています。しかし、ページ上のリンクがどこにあるか、ブラウザが知っているん
考えてみましょう(それが目に見えるということも、または?):
<div id="mydiv" style="width: 300; height: 300;">
<a href="hello">Hello World</a>
</div>
<style>
#mydiv a {
display: none;
}
</style>
を今私は、リンクがために使用スペースをクリックしたときに何も起こりません可視。この場合、ブラウザはクリック/ホバーイベントを発生させないことをどのように知っていますか?使用するアルゴリズムを再作成したい場合は、どの要素が必要ですか?
私はこのようになり、ブラウザのコード内のいくつかの機能があると仮定します。
/* Take user's mouse coordinates and return a DOM element. */
function returnElementBasedOnMouseCoordinate(x, y) {
/* Does a lookup function on some data structure */
return someElementInTheDom;
}
その機能のしくみを教えてください。
ブラウザは、その中に表示されているWebページについて*すべて*を知っています。したがって、ウェブページ内のどこかをクリックすると、ブラウザはあなたがクリックしたものを知っています。だから、あなたが何をクリックするか注意してください...ブラウザは知っています... –
quirksmodeで[イベントへの紹介](http://www.quirksmode.org/js/introevents.html)から始めることができます(ただし、塩の穀物)、[W3C Events spec](http://www.w3.org/TR/DOM-Level-3-Events/)を試してください。ブラウザはドキュメントオブジェクトモデル(DOM)を持っているので、すべての要素とノードがページ内のどこにあるのか、そしてすべての種類のプロパティが正確にわかります。 – RobG
RobG:ブラウザーはどの要素が一番上にあるのかをどのように知っていますか? –