我们如何在javascript中将元素传递给事件处理程序

时间:2016-11-15 08:06:19

标签: javascript jquery html

我使用Javascript创建了一个<input> HTML元素。现在我想动态地向此元素添加onblur事件处理程序。但是我不明白如何将创建的元素作为参数传递给函数。这是我的代码:

element = document.createElement("input");
element.onblur = hello_function;

在上面的代码中,您可以看到元素已创建。现在我想将该元素传递给hello_function。我怎么能这样做?

function hello_function(element) {
    alert(element);
}

3 个答案:

答案 0 :(得分:8)

要实现此目的,您可以将hello_function调用包装在匿名函数包装器中并提供this参数:

element = document.createElement("input");
element.addEventListener('blur', function() {
  hello_function(this);
});
document.body.appendChild(element);

function hello_function(element) {
  console.log(element);
}

另请注意addEventListener优先使用onblur

答案 1 :(得分:1)

试试这样。将另一个变量传递给函数,

var something="hello";
var element = document.createElement("input");
  element.addEventListener('blur' , function ()
                           {
    hello_function(something);
  
  })
 document.body.appendChild(element)

 function hello_function (element){
      alert(element);
}

答案 2 :(得分:1)

我建议使用addEventListener,我认为你需要将创建的元素附加到文档中,如下所示:

var elem = document.createElement("input");
if (elem) {
  elem.addEventListener('blur', hello_function, false);
}
document.body.append(elem);
function hello_function(element) {
  alert(element);
}