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

使用bind(type,[data],fn)和非内联函数

  •  1
  • dalizard  · 技术社区  · 17 年前
    $("p").bind("click", function(event){
           // code goes here
    });
    

    这是可以理解的。但使用非内联函数并将事件作为参数传递的方法是什么?即:

    $("p").bind("click", myFunction(event));
    
     function myFunction(event) {
           // code goes here
     }
    

    非常感谢。

    3 回复  |  直到 17 年前
        1
  •  3
  •   Justin Niessner    17 年前

    下面是:

    $("p").bind("click", myFunction);
    
    function myFunction(event) {
        // code goes here
    }
    
        2
  •  2
  •   tvanfosson    17 年前

    您的问题是,您正在给它一个参数,该参数导致函数被执行,返回值被替换为绑定参数。您要做的只是提供对函数的引用作为要绑定的参数。通过省略括号(和参数)来实现这一点。bind提供给回调函数的参数只需要包含在函数定义中。

    $("p").bind("click", myFunction);
    
    function myFunction(event) {
        // code goes here
    }
    
        3
  •  0
  •   Fabio    16 年前

    所以当你做类似的事情时

    $('p').bind('click', myFunction(event);
    
    function myFunction(event){
    //code
    }
    

    如果您正在创建自己的“事件对象”,而不是在用户操作发生时使用jQuery创建的事件对象,这是否类似?