在jQuery中列出所有实时事件

List all live events in jQuery

本文关键字:实时 事件 jQuery      更新时间:2023-09-26

我如何在jQuery中找到与特定元素的live绑定的事件?

假设我有一个函数randomFunction,它从函数数组中返回一个随机函数。如何找到哪个函数已绑定到某个元素?

var arrayOfFunctions = []; //a whole bunch of functions
function randomFunction(array){}; //returns one of those functions
$('#certain_element').live('click', randomFunction(arrayOfFunctions));

live$('#certain_element')绑定的函数相对应的数组的索引是什么?

好吧,想好了。对于click事件,对于$('#certain_element'),将每个绑定的索引记录到控制台:

var relevantHandlers = $.map($(document).data('events').live, function(value){
  if(value.origType == 'click' && value.selector == '#certain_element'){
    return value.handler;
  }
}; //all handlers for #certain_element bound to click by live.
$.each(relevantHandlers, function(){
  console.log("the index is: " + $.inArray(this, arrayOfFunctions));
});

看看这个插件。当我上次使用它时,需要为当时最新版本的jQuery稍微修改一下,但它应该会给你一个方向。

有一个名为Visual Event的漂亮bookmarklet,它显示将被调用的代码。

但是,既然你真的在调用一个随机函数,那么如果你只是在测试,也许可以做一些简单的事情,比如包括一个警报("函数名")或colson.log("函数")。