2012-04-24 19 views
-3

ページ上の何かがクリックされたとき(コントロールなど)に何かが呼び出され、その機能で送信者が何であるかを確認するたびに1つのイベントを呼び出す方法はありますか?OnClickイベント - 送信者であることを確認する

+1

もう少し明確に説明できますか? –

+0

クリックするたびに特定できるイベントです。 –

答えて

8

このような?

$(document).click(function(e) { 
    console.log(e.target); 
}); 

これは、ドキュメント内のすべてのクリックをキャプチャし、イベントが開始されたノードを記録します。これは少し難解なアプローチですが、問題を理解することなく、私ができる最善の方法です。

1

さて、あなたが何か行うことができます:

$(function(){ 
    $('*').click(function(){ 
     var $sender = $(window.event.target); 
    }); 
}); 

をしかし、あなたは私が想像propegationの問題のすべての種類を持っているだろう、プラス私はすべてのDOM要素が.click()イベントに応答する場合は知りません。

ことになるので、あなたがクラス名でクリッカブルになりたいすべての項目をタグ付けする方が良いと思います:

$(function(){ 
    $('.clickable').click(function(){ 
     var $sender = $(window.event.target); 
    }); 
}); 

あなたが達成するために、正確に何をしようとしていますか?

0

このようにクリックされたアイテムを特定できます。以下のスクリプトはあなたのページ内のすべてのタグを処理します。

$(function(){ 
    $("a").click(function(e){ 
    // e.preventDefault(); prevent default behaviour if needed 
    alert("Invoked from "+$(this).attr("id")); 
    }); 
});​ 

ワーキングサンプル:私はこれをしたいと思う何らかの理由を考えることができないものの、確かにありhttp://jsfiddle.net/yBfUq/2/

0

http://jsfiddle.net/WkNPg/

$(document).ready(function() { 
    $("body *").click(function(event){ 
     alert($(this).attr('id')); 
    })   

}); 

これがIDに警告しますが、あなたはそれを「差出人」をもとにしたいので、何でも作ることができます。

+0

これは、イベントハンドラを_every element_にバインドしようとしています。イベントをバブルアップさせる代わりに。 – Mathletics

関連する問題