我使用Javascript创建了一个<input>
HTML元素。现在我想动态地向此元素添加onblur
事件处理程序。但是我不明白如何将创建的元素作为参数传递给函数。这是我的代码:
element = document.createElement("input");
element.onblur = hello_function;
在上面的代码中,您可以看到元素已创建。现在我想将该元素传递给hello_function
。我怎么能这样做?
function hello_function(element) {
alert(element);
}
答案 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);
}