发送没有函数init的参数

时间:2016-08-09 07:22:22

标签: 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);
}

如何在没有启动的情况下发送参数(在此示例中'color.getAttribute('id')')(在此示例中'记住')?

function remember(color_value) {
  localStorage.setItem('color', color_value); }

1 个答案:

答案 0 :(得分:2)

功能参数不能直接传递给事件监听器。而是实例化一个简单的函数并传递如下的参数。

function remember(id) {
  console.log(id);
}

var colors = document.querySelectorAll('.colors');

for (var i = 0; i < colors.length; i++) {
  var color = colors[i];
  color.addEventListener('click', function() {
    remember(this.getAttribute('id'))
  }, false);
}
.colors {
  padding: 5px 10px;
  background-color: lightgreen;
}
<div id="div1" class="colors">Click Me - I'm Div 1</div>
<br>
<div id="div2id" class="colors">Click Me - I'm Div 2</div>