2017-04-19 12 views
0

I持ってJSの以下のビット:OOP JavaScriptで「この」クリックで要素を取得する方法

bindEvents: function() { 
    this.extra.bind("click", {context: this}, this.checkPackage.bind(this)); 
}, 
checkPackage: function(e) { 
    console.log(e.data.context); 
} 

は私がしたいことは$(this).whateverようになりcheckPackage方法ですが、私がアクセスできないようですクリックされたオブジェクトthis.extraクラスを持つDOMの最初のオブジェクトを選択するだけです。どうすればこの仕事をすることができますか?

+0

の下に使用することができます。 – Blazemonger

答えて

2

イベントリスナーが添付されているオブジェクトにはe.currentTargetを試してください。 e.targetは、実際にクリックされたオブジェクトを提供します(異なる可能性があります)。

+0

ありがとう、私はあなたの答えを11分で受け入れる – Xeen

1

クリックした要素を取得するには、e.targetを試すことができます。

bindEvents: function() { 
    this.extra.bind("click", {context: this}, this.checkPackage.bind(this)); 
}, 
checkPackage: function(e) { 
    console.log(e.target); 
} 
1

次のようにjQuery event docsが、概要を参照することができます。

をevent.currentTarget

相をバブリングイベント内の現在のDOM要素。

event.delegateTarget

現在と呼ばれるjQueryのイベントハンドラが 取り付けた要素。

event.relatedTarget

イベントに関与する他のDOM要素があれば。

event.target

イベントを開始したDOM要素。あなたのケースでは

。あなたは私にはjqueryのように見えないコード

bindEvents: function() { 
    this.extra.bind("click", {context: this}, this.checkPackage.bind(this)); 
}, 
checkPackage: function(e) { 
    console.log(e.currentTarget); 
} 
関連する問題