2016-04-04 11 views
0

私はさらに多くをWebアプリケーションに移行し、非同期のコンテンツ読み込みを使用するようになりました。私は多くの$(document).on( 'click')イベントリスナーを多数使用しています。ネイティブJavaScriptの多くのjQueryオンイベントを処理するには?

私はこれを平易なJavaScriptで記述したいと思います。これを行うには最良の方法がわかりません。以下は、私が気が狂ったように感じているから離れさせたいものです。

var doc = $(document); 

doc.on('click', 'someElement1', function(){}); 
doc.on('click', 'someElement2', function(){}); 
doc.on('click', 'someElement3', function(){}); 
doc.on('click', 'someElement4', function(){}); 
doc.on('click', 'someElement5', function(){}); 

すべてのクリックが実行する別の何かを持っており、なぜなら私はすべてをcomponentiseし、多くの場所で使用できる関数を書く方法の、それは親要素とは対照的に、すべての時間がより安全である文書を使用してのように感じていますアプローチ。

ご協力いただきありがとうございます。

+0

「event.target」についてはどうですか? – Rayon

+0

@RayonDabre - event.targetは、クリックされた実際の要素を表示します.jQuery委任イベントは、セレクタが一致する要素とその子孫のすべてと一致します。 – Quentin

+0

誰かが時間を持っているなら、jQueryを使わずに上記のベストプラクティスバージョンをまとめることができますか? – matt3224

答えて

0

@shivgreは、私は私がおそらく何かのように、その時の推測を取ることができます意味:私は多分違うくらいではないでしょうjQueryの自由なソリューションとして、それをoverthinkingイム意味

$(document).on('click', function(e) { 

    if (e.target === $('someElement1')[0]) { 
     /* do some stuff */ 
    } 

    if (e.target === $('someElement2')[0]) { 
     /* do some stuff */ 
    } 

    if (e.target === $('someElement3')[0]) { 
     /* do some stuff */ 
    } 

    if (e.target === $('someElement4')[0]) { 
     /* do some stuff */ 
    } 

    if (e.target === $('someElement5')[0]) { 
     /* do some stuff */ 
    } 

}); 

$(document).on('click');をやっている主な理由は、コンテンツをロードするためにajaxを頻繁に使用するためです。これを回避する方法はありますか?

ページをクリックするたびに、すべてのドキュメントクリックイベントをトリガーするのは面倒です。これに取り組む上でのあらゆる考え?

関連する問題