问题:在将事件监听器添加到具有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未定义"错误。
答案 0 :(得分:1)
你可以通过匿名函数包围它来解决这个问题:
x.addEventListener("blur", function(){ fnk(x) },false) ;