addEventListener - 指定带有属性的函数引用

addEventListener - Specifying a function reference with attributes

问题: 在将事件侦听器添加到 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 在 blur 上调用时没有传递参数 "t" 导致“t is not defined”错误。

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

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