2009-07-23 10 views
1

重複の可能性:
How to debug Javascript/jQuery event bindings with FireBug (or similar tool)
How to find event listeners on a DOM node?どのイベントがJavaScript経由でバインドされているのかを確認するにはどうすればよいですか?

どのように私はイベントではJavaScriptによってDOM要素にバインドされているかを検出できますか?下の例では、クリックイベントがクリック可能な範囲にバインドされていることを確認したい場合は、可能であればalert行からデバッグできるようにしたいと考えています。

FirebugのようなWebデベロッパーユーティリティでこれを行うことはできますか?

<html> 
    <head> 
     <title>Events bound with JavaScript</title> 
     <script type="text/javascript" 
      src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script> 
     <script type="text/javascript"> 
      $(document).ready(function() { 
       $("#clickable").click(function() { 
        alert("Clicked."); 
       }); 
      }); 
     </script> 
    </head> 
    <body> 
     <span id="clickable">Click me</span> 
    </body> 
</html> 
+0

Dup:http://stackoverflow.com/questions/570960/how-to-debug-javascript-jquery-event-bindings-with-firebug-or-similar-tool/ –

+0

http:// stackoverflow.com/questions/446892/how-to-find-event-listeners-on-a-dom-node – geowa4

答えて

1
// this function will return number of keys in object 
function objectLenght (obj) { 
    var len = 0; 
    for (var key in obj) { 
     len++; 
    } 
    return len; 
} 

var objWithClickEvents = []; 

// iterate through all elements 
$('*').each(function() { 
    var clickEvents = $.data($(this)[0], 'events').click; 
    if (objectLength(clickEvents) > 0) { 
     objWithClickEvents[objWithClickEvents.length] = $(this); 
    } 
}); 

必要に応じて他のイベントとのclickを交換してください。

関連する問題