2011-03-04 51 views
29

我目前正试图找出什么点击事件处理程序已附加到我的股利。应该只附加一个处理程序,但似乎至少有一个。我使用FireBug,但Chrome也可以作为选项。我不喜欢IE浏览器,所以我不想使用它。有没有工具/技术来调试jQuery事件处理程序?

最好的情况是我可以使用FireBug检查我的div,并查看事件处理程序的列表。

+1

怎么样'活着'处理程序? – SLaks 2011-03-04 19:08:25

+1

他们呢? – MedicineMan 2011-03-04 19:27:26

+0

我喜欢这个问题和一个更多的马方 – 2011-03-04 19:30:57

回答

18

Visual Event是一个不错的JavaScript书签,您可以在页面上运行以查看所有附加到控件的事件。

+0

我很喜欢这个 – MedicineMan 2011-03-04 22:34:48

+1

它似乎还没有揭示真正处理事件的函数,只是表明jquery以某种方式听 – Dukeatcoding 2014-01-14 12:36:06

10

如果您正在使用jQuery来分配你的事件处理程序。如果你希望得到现场处理,你可以做同样的事情的文件,你可以通过$("div").data("events");

$("div.test").each(function(){ 
    var events = $(this).data("events"); 
    //events.click will give you a list of click handlers, events.mouseenter, etc.. 
    $.each(events, function(i, eventType){ 
     $.each(eventType, function(){ 
      //this.handler() can be used to find the anonymous function assigned to the element. 
      $("body").append("<h1>" + this.type + "</h1>"); 
     }); 
    }); 
}); 

找到连接事件。

var liveEvents = $(document).data("events").live; 
$.each(liveEvents, function() { 
    $("body").append("<h1>" + this.selector + this.origType + "</h1>"); 
}); 

jsfiddle上的示例。

+1

这似乎不适用于jQuery 1.10。在$(element).on(“custom-event”,function(){console.log(“hi”);})''后检查'$(element).data('events')''我得到' undefined',但是'$(element).trigger(“custom-event”)'会触发回调。 – 2013-12-06 11:01:19

6

检出$ .data函数。

具体是这样的:

VAR点击= $(mySelector)。数据( '事件'),单击;

应返回一个单击事件处理程序及其关联的DOM对象的列表。

+0

不错,简单 – MedicineMan 2011-03-04 19:28:47

-2

“fire-bug”附加组件(对于mozilla)是最好的选择。

+0

'最好的情况是我可以使用FireBug检查我的div,并查看事件处理程序的列表。' – SLaks 2011-03-04 19:17:19

+0

我安装了萤火虫并且一直在使用它。接下来是什么? – MedicineMan 2011-03-04 19:28:32

+0

@MedicineMan ::适用于dubugging的中断点。 – 2011-03-04 19:30:27

相关问题