addEventListener - 使用属性指定函数引用

时间:2015-10-20 17:40:49

标签: javascript reference call addeventlistener

问题:在将事件监听器添加到具有ID" g1"的元素的行中,在执行此行时调用fnk,即添加事件侦听器时。我希望只有当g1

发生模糊事件时才调用fnk函数
   function fnk(t)
    {
      //I play with t here
    }

    var x = document.getElementById("g1") ;
    x.addEventListener("blur", fnk(x),false) ;
    x.focus() ;

我知道addEventListener接受函数引用而不是函数调用。

注意:我对函数引用(" fnk")的理解是它是没有以下"()"的函数名。并且只引用函数和函数调用,即函数名后跟"()" ,即fnk(),调用函数。

因此正确的方法是

x.addEventListener("blur", fnk, false) ;

解决了在添加事件侦听器时调用fnk的问题。上面一行的问题是fnk在模糊的情况下调用而不传递参数" t"这导致了一个" t未定义"错误。

1 个答案:

答案 0 :(得分:1)

你可以通过匿名函数包围它来解决这个问题:

x.addEventListener("blur", function(){ fnk(x) },false) ;