Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在函数中选择此或变量_Javascript_Dom_Addeventlistener - Fatal编程技术网

Javascript 在函数中选择此或变量

Javascript 在函数中选择此或变量,javascript,dom,addeventlistener,Javascript,Dom,Addeventlistener,listenerForm()函数是使用addeventlistener执行的。在函数中,我为get dom元素获取“this”对象。现在我需要使用这个函数,但我需要在参数中传递dom元素。如果我传递一个参数,如何区分 for (var i = 0; i < form.length; i++) { form[i].addEventListener("click", listenerForm,true); } function listenerForm(form) { console.l

listenerForm()函数是使用addeventlistener执行的。在函数中,我为get dom元素获取“this”对象。现在我需要使用这个函数,但我需要在参数中传递dom元素。如果我传递一个参数,如何区分

for (var i = 0; i < form.length; i++) {
 form[i].addEventListener("click", listenerForm,true);
}

function listenerForm(form) {

console.log(form); //result MouseEvent {isTrusted: true}
console.log(this);//result fomr element.

}

listenerForm(domElement);
for(变量i=0;i
如果我用addeventlistener执行函数,我只需要得到这个。如果我传递表单参数,我只需要参数。
我在addeventlistener中找到了传递参数的解决方案,但我无法在for循环中创建函数。

如果您不需要访问事件对象(似乎不需要),则从事件处理程序调用该函数,而不是将其用作事件处理程序:

form[i].addEventListener("click", function() {
    listenerForm(this);
}, true);
现在参数
form
将始终引用DOM元素。

尝试以下操作:

for (var i = 0; i < form.length; i++) {
 form[i].addEventListener("click", listenerForm(this), true);
}

function listenerForm(clickedFormElement) {
console.log(clickedFormElement);//result form element
}

listenerForm(clickedFormElement);// i don't know what you're trying to do here!!
for(变量i=0;i
使用currying和bind方法的解决方案如下

form.forEach(function(item){
  item.addEventListener('click', listenerForm.bind(null, item));
})

现在listenerForm的第一个参数是单击的元素,它指的是全局对象

这是OOPS中类的当前引用对象。请发布与您的问题相关的JavaScript/jQuery、CSS和HTML。使用以下任何或所有服务创建演示:、、或代码段(位于文本编辑器工具栏上的第7个图标或CTRL+M)。我无法通过阅读您的问题理解您想要做什么!但我认为您需要存储
这个
,并将其用作参数。因此,请尝试将
存储在变量中,并将变量名作为参数传递到函数中,同时将其作为参数传递到调用它的位置!!