2016-04-25 4 views
-1

HTMLはドラッグ&ドロップのHTML属性で使用される「イベント」の有効範囲は何ですか?

<p id="source" ondrag="drag_handler(event);" ondragstart="dragstart_handler(event);" draggable="true">...</p> 

私の質問は、引数 "イベント" についてです、ondrag =、ondrop =のようにドラッグ&ドロップ、など 例えばのためのいくつかの属性があります。その名前はハードコードされています。どうやら、それはオブジェクトです。それは奇妙な範囲を持っています。ようにイベントハンドラ、(typeof演算イベント)はHTML要素の内部同じオブジェクトであるオブジェクトを返す内部に、それを使用するHTML要素内に定義されるが、素子の外部に定義されていない、クロム、すなわち

<script> 
    typeof event; // returns undefined 
</script> 

実際にはイベントハンドラの中でパラメータと参照「イベント」オブジェクトを直接取り除くことができます。 Firefoxでは、イベントはイベントハンドラ内では定義されていないため、パラメータとして使用する必要があります。ドラッグアンドドロップ(少なくともインラインバージョン)の実装は、klugegeに基づいているようです。

この「イベント」オブジェクトはどこに文書化されていますか?これはどのような種類の可変スコープですか?選択されたHTML要素内で定義されたオブジェクトであり、スクリプト要素内で定義されていないオブジェクト、つまりJavaScriptの外側で定義されていますがJavaScript内では定義されていません。これはどんな論理ですか?あなたは(あなたやるべきことがある)JavaScriptでイベントハンドラを添付たい場合、それは次のようになりますように

+0

dragstart_handlerこれを呼び出してチェックしてください –

+0

これを1つの質問に限定することができれば、答える方が簡単です。しかし、まずondragの簡単な検索で[JavaScriptのドラッグアンドドロップを使用するためのガイド](https://developer.mozilla.org/en-US/docs/Web)のようにいくつかの研究をしたいと思うでしょう。/API/HTML_Drag_and_Drop_API)... –

答えて

0

はそれについて考える:eventのみ、この関数の中で定義されているか

document.getElementById('source').addEventListener("drag",function(event) { 
    drag_handler(event); 
},false); 

をお知らせスコープ、その他はどこにもありません。基本的には同じことです。

関連する問題