Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.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 发送不带函数init的参数_Javascript_Function_Parameters - Fatal编程技术网

Javascript 发送不带函数init的参数

Javascript 发送不带函数init的参数,javascript,function,parameters,Javascript,Function,Parameters,我有一个收集class.colors元素的代码 var colors = document.querySelectorAll('.colors'); 和将事件分配给所有元素的循环 for (var i=0;i<colors.length;i++) { var color = colors[i]; color.addEventListener('click', remember(color.getAttribute('id')), false); } 功能参数不能直接传递

我有一个收集class.colors元素的代码

var colors = document.querySelectorAll('.colors');
和将事件分配给所有元素的循环

for (var i=0;i<colors.length;i++) {
    var color = colors[i];
    color.addEventListener('click', remember(color.getAttribute('id')), false);
}

功能参数不能直接传递给事件侦听器。相反,实例化一个简单的函数并像下面那样传递参数

函数记忆(id){
console.log(id);
}
var colors=document.querySelectorAll('.colors');
对于(变量i=0;i
.colors{
填充物:5px10px;
背景颜色:浅绿色;
}
点击我-我是第一组


单击我-我是Div 2
我认为这不可能!我认为你的问题解释得不够清楚。如果要获取单击的DOM元素的
id
,是否正在尝试在不使用“.getAttribute”的情况下查找“color”的id。无论如何,您都可以在
单击Listener
中获得它。您可以获取侦听器的
target
元素,然后执行
getAttribute
I尝试将color.getAttribute值作为参数发送到函数。问题是浏览器将带有函数名和方括号的代码行解释为函数的初始化。但它不是-括号仅用于发送参数。@Adamsky97:是的,这是所需的行为。尝试
color.addEventListener('click',function(){记住(color.getAttribute('id'))},false)
我相信
color
应该是回调函数中的
this
,否则它将始终访问最后一个元素。
function remember(color_value) {
  localStorage.setItem('color', color_value); }