Javascript 在jQuery中列出所有实时事件
如何在jQuery中找到与特定元素的live绑定的事件 假设我有一个函数,Javascript 在jQuery中列出所有实时事件,javascript,jquery,Javascript,Jquery,如何在jQuery中找到与特定元素的live绑定的事件 假设我有一个函数,randomFunction,它从函数数组中返回一个随机函数。如何找到已绑定到某个元素的函数 var arrayOfFunctions = []; //a whole bunch of functions function randomFunction(array){}; //returns one of those functions $('#certain_element').live('click', randomF
randomFunction
,它从函数数组中返回一个随机函数。如何找到已绑定到某个元素的函数
var arrayOfFunctions = []; //a whole bunch of functions
function randomFunction(array){}; //returns one of those functions
$('#certain_element').live('click', randomFunction(arrayOfFunctions));
与
$(“#某些_元素”)
的live
绑定的函数对应的数组索引是什么?请查看。当我上次使用它时,需要为当时最新版本的jQuery稍微修改一下它,但它应该给你一个方向。有一个漂亮的bookmarklet,它显示了将被调用的代码
但是,由于您真正调用的是随机函数,如果您只是在测试,那么可能会执行一些简单的操作,比如包括一个警报(“函数名”)或colsone.log(“函数”)。好吧,找到答案。
对于单击事件,对于$(“#某些_元素”)
,将每个绑定的索引记录到控制台:
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));
});
这将处理与绑定的正常事件。单击或绑定,但不是.live
整洁的bookmarklet,但对于live
绑定,它会突出显示整个文档,但不提供有关触发事件的目标的信息。啊,这很有意义。。。.live()事件在调用.live触发器之前冒泡到根元素。我以为我可以在带有.live()绑定的标记上看到可视事件,但结果是我将一个委托()附加到锚所在的上。成功了。