2009-07-23 69 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-line進行調試。

我可以用像Firebug這樣的網絡開發工具來做到這一點嗎?

<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/ – 2009-07-23 14:47:34

回答

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與其他事件,如果你想。