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

在DOM元素上查找jquery添加的回调函数

  •  2
  • cllpse  · 技术社区  · 15 年前

    我目前正在使用Firebug 1.3.0和jquery 1.2.6在Mozilla Firefox 3.0.5中对此进行测试。

    第一次尝试

    document.getElementById("x").onfocus = function ()
    {
        var helloWorld = "Hello World";
    };
    

    Firebug控制台:

    document.getElementByID(“helloworld”).onfocus.toString()。 =作为字符串的函数体

    $(“helloworld”).get(0).onfocus.toString()) =作为字符串的函数体


    第二次尝试

    $("#helloworld").focus(function ()
    {
        var helloWorld = "Hello World";
    });
    

    Firebug控制台:

    document.getElementByID(“helloworld”).onfocus.toString()。 =Firebug不返回任何内容

    $(“helloworld”).get(0).onfocus.toString()) =Firebug不返回任何内容


    我这里缺什么?为什么在用jquery附加回调时找不到它们?

    2 回复  |  直到 15 年前
        1
  •  6
  •   redsquare    15 年前

    要查看jquery绑定使用的事件,请执行以下操作:

    $("#helloworld").data('events');
    

    如果您按照示例绑定焦点,并在Firebug控制台中运行上述内容,它将返回

    Object focus=Object
    
        2
  •  4
  •   Adam Bellaire    15 年前

    jquery不直接附加回调,而是将回调存储在注册表内部。每当触发一个事件时,jquery就会在注册表中查找并调用您之前请求的回调。

    这使您能够将多个回调叠加到单个元素的事件上,但是它的缺点是 必须 使用jquery的事件处理程序例程来设置、获取和删除回调。