2016-12-08 31 views
-1

私は.clickでe.whichを使用することはできますか?

私は、すべてのユーザーがクリックした場所の文が見つける場合で1つの関数内のイベントをクリックしていることを意味
$(document).click(function(e) { 
    if(e.which == $('#target') { 
     //execute code 
    } 
}); 

のようなものを設定することが可能であるかどうかを知りたいです。私はコードがよりクリーンなので、サイト上での私のアクティブなスクロールのために、この方法をしたいと思います。あなたがidを取得し、対象ID targetと比較し、その後、代わりにe.whichの現在のクリックされたオブジェクトを参照するe.targetを使用するようにしました

+2

'Eの中に構築しているものを使用することができます

$("#target").is(e.target) 

です。これは、クリックされたキー/マウスボタンを含んでおり、あなたは[ eターゲット(https://developer.mozilla.org/en-US/docs/Web/API/Event/target) – empiric

+0

@empiricので、e.targetを使用するとコードが機能するようになりますか? – Shniper

+0

@ Shniperあなたが提案するように、リスナーをドキュメントに置くことは有効なテクニックです。なぜそれが悪くなると思いますか? (あなたの質問によって暗示される) –

答えて

2

あなたはjQueryオブジェクトへの参照キーを比較しています。あなたが使用することができます

​​

あなたがIDS

e.target.id === "target" 

を比較することができますかあなたはjQueryのイベントの委任

$(document).on("click", "#target", function(){ }); 
+0

@empiric whoops、元からコピーして貼り付け、ターゲットを交換するのを忘れてしまった。私はもっ​​とコーヒーが必要です。 – epascarello

+0

私は '$("#target ")の提案が好きです。is(e.target)' – empiric

3

は、試してみてください。

$(document).click(function(e) { 
    var target_id = 'target'; 

    if(e.target.id == target_id) { 
     //execute code 
    } 
}); 

・ホープ、このことができます。

$(document).click(function(e) { 
 
    var target_id = 'target'; 
 

 
    if(e.target.id == target_id) { 
 
    console.log('Target clicked'); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div>Div 1</div> 
 
<div>Div 2</div> 
 
<div id='target'>Div 3</div> 
 
<div>Div 4</div>

+2

申し訳ありませんZakaria、JS(https://jsfiddle.net/RoryMcCrossan/1cxw5wxg/)で直接オブジェクトを比較することはできませんので、これは動作しません。オブジェクトのプロパティを使用してそれらを評価する必要があります。 –

+0

あなたは正しい@Roryです。代わりにIDを比較するために私のasnwerを更新しました。 –

+1

私は '$(e.target).prop( 'id')'の代わりに 'e.target.id'を提案します。 –

関連する問題