我有一个循环通过一组键,根据它们的值创建事件监听器。
for (var keys in key) {
if (excludeList.indexOf(keys) == -1) {
d3.selectAll('img[alt="' + keys + '"]').on('click, function() {
console.log(keys);
d3.selectAll('img[alt="' + keys +'"').style('opacity','0.5')
})
}
}
每个侦听器都会覆盖前一个侦听器,以便最后一个键是唯一剩余的侦听器。
如何在不同的alt标签上设置监听器?
答案 0 :(得分:1)
您不是要查找数组/对象值,而是查找索引(keys
与key[keys]
或语义正确:key
与keys[key]
)
这是一个固定的例子:
var keys = {
a: 'shomz' // 'In code veritas' not listed so no event
,b: 'another'
}
var excludeList = ['excluded'];
for (var key in keys) {
if (excludeList.indexOf(keys[key]) == -1) {
attach(keys[key]);
}
}
function attach(k) {
$('img[alt="' + k + '"]').click(function() {
console.log(k);
$('img[alt="' + k + '"').css('opacity', '0.5')
})
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<img alt="In code veritas" />
<img alt="shomz" />
<img alt="another" />
<img alt="excluded" />
&#13;