Google翻译:
很好的尝试几天,所以我猜没有人有这种好奇心,我需要知道在jQuery上触发事件时正在执行的代码。
当我添加一个事件时它在JavaScript中常见,它只保存在jQuery不在同一个地方的名称变量中。
示例:
/ / Adding code to an event
window.onclick = function () {alert ('hi!')};
/ / To see the event code
console.log (window.onclick);
在jQuery中?
感谢!!!
原件:
Bomprocurohádiaspor issoento achocingninguémteveessa curiosidade,eu preciso saberquaiscódigosestãosendoexecutados quando algumeventoédisparadono jQuery。
没有JavaScript comum quando eu adiciono um evento ele fica salvonariariávelderespectivo nomesóquenojQuerynãoficano mesmo lugar。
Exemplo:
// adicionando código a um evento
window.onclick = function(){alert('hi!')};
// para ver o código do evento
console.log(window.onclick);
E没有jQuery?
Obrigado !!!
答案 0 :(得分:1)
您可以通过下一种方式查看所有jquery事件处理程序:
jQuery._data(document.getElementById('id-of-the-element'))
或
jQuery._data(jQuery('#id-of-the-element')[0])
答案 1 :(得分:1)
从jQuery 1.7开始,整个事件系统从头开始重写。 但是您可以使用未正式记录的jQuery方法......
$._data($('selector')[0],'events');
我建议不要在您的生产代码中使用它。
答案 2 :(得分:0)
试试这个:
// UPDATED -> NOW WORKS WITH jQuery 1.3.1
$.fn.listHandlers = function(events, outputFunction) {
return this.each(function(i){
var elem = this,
dEvents = $(this).data('events');
if (!dEvents) {return;}
$.each(dEvents, function(name, handler){
if((new RegExp('^(' + (events === '*' ? '.+' : e vents.replace(',','|').replace(/^on/i,'')) + ')$' ,'i')).test(name)) {
$.each(handler, function(i,handler){
outputFunction(elem, '\n' + i + ': [' + name + '] : ' + handler );
});
}
});
});
};
获取点击事件:
// List onclick handlers of window:
$(window).listHandlers('onclick', console.info);