-1

ページ上の何かがクリックされるたびに(コントロールか何か他のものかを問わず)1つのイベントを呼び出し、その関数でどちらが送信者であるかを確認する方法はありますか?

4

4 に答える 4

9

このような?

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

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

于 2012-04-24T13:20:44.787 に答える
1

次のようなことができます。

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

ただし、私が想像するあらゆる種類の伝播の問題が発生することに加えて、すべての dom 要素が.click()イベントに応答するかどうかはわかりません。

クリック可能にしたいすべての項目にクラス名でタグ付けする方がよいでしょう。したがって、次のようになります。

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

正確に何を達成しようとしていますか?

于 2012-04-24T13:22:30.127 に答える
0

確かにありますが、あなたがこれをやりたい理由は思い浮かびませんが?

http://jsfiddle.net/WkNPg/

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

});

これによりIDが警告されますが、「送信者」に基づいて好きなものにすることができます。

于 2012-04-24T13:25:48.593 に答える
0

このようにどの項目がクリックされているかを識別できます。以下のスクリプトは、ページ内のすべてのタグを処理します。

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

作業サンプル: http://jsfiddle.net/yBfUq/2/

于 2012-04-24T13:22:43.413 に答える