currentTarget
とtarget
のプロパティとJavascriptイベントの正確な違いを教えてもらえますか?どのシナリオでどのプロパティが使用されますか?javascriptのcurrentTargetプロパティとtargetプロパティの正確な違いは何ですか?
答えて
基本的には、デフォルトでevents bubble両者の差があるので:
target
イベントをトリガした要素(例えば、ユーザーがクリックした)currentTarget
は、イベントリスナーという要素ですに添付されています。
このblog postの簡単な説明を参照してください。
target =イベントをトリガした要素。 currentTarget =イベントをリッスンする要素。 – markmarijnissen
@markmarijnissenあなたは間違いなく答えとしてあなたのコメントを置くべきです。なぜなら、それは上記の答えよりも有用であり、さらに多くの投票があるからです! – Andrea
[このコメント](http://stackoverflow.com/questions/10086427/what-is-the-exact-difference-between-currenttarget-property-and-target-property#comment39457506_10086501)に基づいて回答を更新してください。 –
これが付着していない場合は、これを試してみてください。
currentTarget
で
現在は存在を指します。それは他の場所から沸騰したイベントを捕らえた最新のターゲットです。
最小例
window.onload = function() {
var resultElem = document.getElementById('result')
document.getElementById('1').addEventListener(
'click',
function(event) {
resultElem.innerHTML += ('<div>target: ' + event.target.id + '</div>')
resultElem.innerHTML += ('<div>currentTarget: ' + event.currentTarget.id + '</div>')
},
false
)
document.getElementById('2').dispatchEvent(
new Event('click', { bubbles:true }))
}
<div id="1">1
<div id="2">2
</div>
</div>
<div id="result">
<div>result:</div>
</div>
2
を1
をクリックし、に列挙されている場合、結果は:
target: 2
currentTarget: 1
なぜならその場合:
- は、イベント
1
を発信要素であるイベントが発信されたノード、すなわち、あるイベント
event.targetを聞い要素です。あなたのイベントリスナーを(段落またはスパン上に)配置するたびに、event.targetはノード(ユーザーがクリックした場所)を参照します。
event.currentTargetは、現在のイベントリスナーが接続されたノードを指します。つまり段落ノードにイベントリスナーを追加した場合、event.currentTargetは段落を参照し、event.targetは引き続きspanを参照します。 注:bodyにイベントリスナーがある場合、このイベントリスナーの場合、event.currentTargetはボディを参照します(つまり、event-listernersへの入力として提供されるイベントは、イベントが1つのノードをバブリングするたびに更新されます)。
<style>
body * {
margin: 10px;
border: 1px solid blue;
}
</style>
<form onclick="alert('form')">FORM
<div onclick="alert('div')">DIV
<p onclick="alert('p')">P</p>
</div>
</form>
上記のコードではPタグをクリックすると、その後、次の3回の警告を取得する場合、あなたはdivタグをクリックすると、フォームをクリックすると上の2つの警告と1つのアラートを取得しますタグ。
[:私達はちょうどPとフォームタグからonclickの取り外し、我々はPタグに我々をクリックすると、今、我々は唯一の1つのアラートを取得
そして今、次のコードを参照してください、オブジェクトHTMLParagraphElement] [オブジェクトHTMLDivElement]<style> body * { margin: 10px; border: 1px solid blue; } </style> <script> function fun(event){ alert(event.target+" "+event.currentTarget); } </script> <form>FORM <div onclick="fun(event)">DIV <p>P</p> </div> </form>
ここで、event.targetは[object HTMLParagraphElement]、event.curentTargetは[object HTMLDivElement]:です。だから
event.targetイベントが発信されたノード、及び event.currentTargetは、反対に、現在のイベントリスナーがsee bubbling
詳細を知るattached.Toされたノードを指します
ここでPタグをクリックしましたが、Pの親要素divにリスナーはありません。
- 1. WPF DataGridのItemsプロパティとItemsSourceプロパティの違いは何ですか?
- 2. ember.jsの '[]'プロパティと '@each'プロパティの違いは何ですか?
- 3. @JsonIgnoreのプロパティと注釈のないプロパティの違いは何ですか?
- 4. 異なる* Targetプロパティの目的は何ですか?
- 5. JavaScriptでは、二重引用符( "")で囲まれたプロパティ名とないプロパティ名の違いは何ですか?
- 6. target = "_ blank"と "target = blank"の違いは何ですか?
- 7. TFSのWorkItemクラスのLinksプロパティとWorkItemLinksプロパティの違いは何ですか?
- 8. JavaScriptオブジェクトとプロパティとは何ですか?
- 9. 依存関係プロパティとWPFの添付プロパティの違いは何ですか?
- 10. wpfのToolBarPanelとToolBarTrayの正確な違いは何ですか?
- 11. プロパティゲッターのコンストラクタとプロパティの設定の違いは何ですか?
- 12. Kotlinのプロパティとパラメータの違いは何ですか?
- 13. django形式のプロパティとmetaフィールドの違いは何ですか?
- 14. Windows AzureとWindows IISの正確な違いは何ですか?
- 15. モデルとアルゴリズムの正確な違いは何ですか?
- 16. r +モードとw +モードの正確な違いは何ですか?
- 17. インテントと保留インテントの正確な違いは何ですか?
- 18. Polymer "reflectToAttribute"と "notify"の正確な違いは何ですか?
- 19. OnKeyListenerとOnEditorActionListenerの正確な違いは何ですか?
- 20. KVCとプロパティの違いは何ですか?
- 21. プロパティとインスタンス変数の違いは何ですか?
- 22. NSDictionariesとプロパティを持つカスタムオブジェクトの違いは何ですか?
- 23. インスタンス変数とプロパティの違いは何ですか?
- 24. クラス "属性"と "プロパティ"の違いは何ですか?
- 25. Javascript hasOwnPropertyのプロパティは何ですか?
- 26. gccの--hostと--targetの違いは何ですか?
- 27. Omniture Test&TargetのクラスとIDの違いは何ですか?
- 28. カフカプロデューサのrequest.timeout.msプロパティとtimeout.msプロパティの違い
- 29. tsconfig.jsonの "target"プロパティは実際に何を表していますか?
- 30. Javascript:関数のプロパティとは何ですか?その意味は何ですか?
いくつかのブラウザでは、divコピーイベントを聞いた場合、FFでは要素の代わりにtextNodeが得られますが、リスナーはdivレベルになります。 – Nikos