代码之家  ›  专栏  ›  技术社区  ›  googletorp

使用jQuery访问绑定到事件处理程序的函数

  •  50
  • googletorp  · 技术社区  · 16 年前

    .bind() 或事件处理程序帮助程序函数之一。

    {
      click: [function1, function2],
      change: [function3],
      blur: [function4, function5, function6]
    }
    
    2 回复  |  直到 16 年前
        1
  •  36
  •   Justin    11 年前

    编辑 :

    您可以在本文中找到许多有趣的提示和技巧: Things you may not know about jQuery .

    jQuery似乎使用 data

    您可以访问所有事件处理程序 绑定到元素(或任何对象)

    // 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['handler'].toString() );
        });
    });
    
    // You can see the actual functions which will occur
    // on certain events; great for debugging!
    
        2
  •  69
  •   eikes    14 年前

    jQuery 1.7已停止在regular data()函数中公开事件。你仍然可以这样得到它们:

    var elem = $('#someid')[0];
    var data = jQuery.hasData( elem ) && jQuery._data( elem );
    console.log(data.events);
    

    请注意,这只适用于使用jQuery绑定的事件。很抱歉,您无法查看使用常规DOM函数(如addEventListener)绑定的所有事件。