我有使用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); }
答案 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>