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

标签 javascript jquery events event-handling

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

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

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

最佳答案

嗨,虽然你的困境有点开放性,但希望这对你的事业有所帮助 :)

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

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

// 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-)

关于javascript - jQuery - 添加/替换事件监听器(当事件处理程序未知时),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11521047/

相关文章:

php - 第一次访问索引后启动屏幕消失

javascript - animationend 在递归函数中不起作用

javascript - Backbone js即时搜索集合

javascript - UI日期选择器代码格式

php - 如何在 PHP 中安排事件

java - 为什么默认情况下按钮鼠标事件处理程序会消耗一个事件?

javascript - 要传递给 ReadProcessMemory 的 WCHAR_T 地址

javascript - 如何使用 chart.js 在图条上方显示值标签

c++ - Qt 中的多线程事件处理程序

javascript - 使用按钮 onclick 计算正确答案