jQuery - 追加/替换事件侦听器(当事件处理程序未知时)

jQuery - append/replace event listeners (when event handlers are not known)

本文关键字:事件处理 程序 未知 侦听器 追加 替换 事件 jQuery      更新时间:2023-10-01

我试图找到问题的答案,但没有成功 - 如果答案非常明显,请道歉:(。这是我试图解决的问题的前提。

  • 我有很多UI元素(按钮,超链接等(附加了本机事件(例如,单击链接执行功能(
  • 我无权访问这些事件侦听器,也不知道需要调用哪些函数/处理程序
  • 我想做一个通用函数,它将:o 横向通过 DOM,找到按钮或超链接等 UI 元素,并将执行相同处理程序/函数的其他侦听器附加到它(例如,我想附加将执行与"click"事件相同的处理程序/函数的"touchend"侦听器(

有没有办法让我以某种方式找出用于特定 UI 元素的事件处理程序,然后通过 .on(( 方法为同一处理程序附加新的侦听器?

Hiya 即使你的困境有点开放,希望这对你的事业有所帮助:)

阅读此内容 - 您可能不知道的有关 JQuery = http://james.padolsey.com/javascript/things-you-may-not-know-about-jquery/

您可以通过 jQuery 的事件存储访问绑定到元素(或任何对象(的所有事件处理程序:

// List bound events:
console.dir( jQuery('#elem').data('events') );
// Log ALL handlers for ALL events:
jQuery.each($('#elem').data('events'), function(i, event){
    jQuery.each(event, function(i, handler){
        console.log( handler.toString() );
    });
});
// You can see the actual functions which will occur
// on certain events; great for debugging!

附言 - 我建议更好地了解您的 DOM,但上面应该会有所帮助。 B-)