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

问题描述 投票:0回答:1

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

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

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

javascript jquery events event-handling
1个回答
0
投票

你的困境有点开放式。

阅读本文:关于 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。

© www.soinside.com 2019 - 2024. All rights reserved.