使用jquery / javascript设置多个img alt侦听器

时间:2015-11-02 00:34:23

标签: javascript jquery d3.js listener alt

我有一个循环通过一组键,根据它们的值创建事件监听器。

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标签上设置监听器?

1 个答案:

答案 0 :(得分:1)

您不是要查找数组/对象值,而是查找索引(keyskey[keys]或语义正确:keykeys[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;
&#13;
&#13;