调用具有多个数组参数的函数

cpu_figther

有一个 HTML 锚点列表,我需要添加事件侦听器,据我所知,当我将其作为参数提及时,它不会接收数组。

作为尝试,我没有使用额外的函数,而是使用自调用,但这种方式i在调试时甚至没有被监听。

for (var i=0; i < anc.length; i++) {
    anc[i].addEventListener('mouseover', function(i,pop,tri) {
       console.log('i=%i', i);    // last value of loop
       pop[i].style.display = 'initial';
       tri[i].style.animation='anim_dpt_tr 0.4s ease-out forwards';
    });
    ...
}

更有用的代码

var pop = document.querySelectorAll('#cities > li > a > .popup');
const anc = document.querySelectorAll('#cities > li > a');
var tri = document.getElementsByClassName('triangle-left');

for (var i=0; i < anc.length; i++) {
    anc[i].addEventListener('mouseover', over(i, tri, pop));
    anc[i].addEventListener('touchmove', over(i, tri, pop));
    anc[i].addEventListener('touchend', out(i, tri, pop));
    anc[i].addEventListener('mouseout', out(i, tri, pop));
}

function over(i,tri,pop) {
    console.log("over_address=%i", pop[i]); // =0
    pop[i].style.display = 'initial';
    tri[i].style.animation='anim_dpt_tr 0.4s ease-out forwards';
}
function out(i,tri,pop) {
    console.log("out_i=%i", i);             // =each index
    pop[i].style.display = 'none';
    tri[i].style.animation='anim_dpt_tr_back 0.3s ease-in forwards';
}

这里是 HTML 树

<ul id="cities">
  <li>
    <a href="">Shoulder
      <span class="triangle-left"></span> <span class="popup">Arm</span> </a>
  </li>
...

如何将数组正确传递给事件处理程序?

brk

此行将anc[i].addEventListener('anyEvent', over(i, tri, pop))尝试立即调用该函数。相反,您可以创建一个回调函数并从中调用over& out也不是传递多个参数,而是使用this. 这里this将指的是触发事件的元素,anchor tag在这种情况下是 。

然后在over/out函数内部使用elem.querySelector('.popup')它将以popup触发事件的元素内的类为目标的元素然后你可以添加样式属性

const anc = document.querySelectorAll('#cities > li > a');
for (var i = 0; i < anc.length; i++) {
  anc[i].addEventListener('mouseover', function() {
    over(this)
  });

  anc[i].addEventListener('mouseout', function() {
    out(this)
  });
}

function over(elem) {
  elem.querySelector('.popup').style.display = 'initial';
  elem.querySelector('.triangle-left').style.animation = 'anim_dpt_tr 0.4s ease-out forwards';
}

function out(elem) {
  elem.querySelector('.popup').style.display = 'none';
  elem.querySelector('.triangle-left').style.animation = 'anim_dpt_tr_back 0.3s ease-in forwards';
}
<ul id="cities">
  <li>
    <a href="">Shoulder
      <span class="triangle-left"></span> <span class="popup">Arm</span> </a>
  </li>
  <li>
    <a href="">Shoulder
      <span class="triangle-left"></span> <span class="popup">Leg</span> </a>
  </li>
  <li>
    <a href="">Shoulder
      <span class="triangle-left"></span> <span class="popup">ercerc</span> </a>
  </li>
</ul>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Haskell使用map调用具有多个参数的函数

来自分类Dev

调用具有多个参数值的模板函数

来自分类Dev

从修改默认值的函数调用具有不同默认参数的多个函数

来自分类Dev

使用具有2个数组作为参数的合并函数进行合并排序

来自分类Dev

从gridview超链接调用具有多个参数的Javascript函数

来自分类Dev

从F#调用具有多个参数的C#函数

来自分类Dev

根据条件语句调用具有多个参数的函数

来自分类Dev

调用具有多个参数的函数的更简单方法?

来自分类Dev

如何调用具有多个参数的HTTP POST请求?

来自分类Dev

Java Reflection调用具有多个参数的方法

来自分类Dev

如何调用具有多个参数的过程?

来自分类Dev

如何调用具有多个参数的HTTP POST请求?

来自分类Dev

通过PerformSelector iOS调用具有多个参数的方法

来自分类Dev

使用AJAX调用具有多个参数的CFC

来自分类Dev

如何调用具有多个参数的视图

来自分类Dev

在Python中调用具有参考参数的.Net函数

来自分类Dev

如何调用具有for_each循环参数的函数?

来自分类Dev

调用具有较少参数的C函数?

来自分类Dev

调用具有TypeAlias作为参数的函数?

来自分类Dev

从JavaScript中的对象调用具有正确参数的函数

来自分类Dev

调用具有较少参数的C函数?

来自分类Dev

调用具有不同数量参数的函数

来自分类Dev

在 Sinon 中假调用具有特定参数的函数

来自分类Dev

调用具有相同值的多个函数

来自分类Dev

使用具有多个参数的函数时出错

来自分类Dev

从python字典调用具有多个参数的函数名到另一个函数

来自分类Dev

调用具有多个参数和一个字符串数组的方法

来自分类Dev

重新定义且模棱两可的函数调用具有数组参数

来自分类Dev

调用具有默认参数的函数,该函数还具有回调

Related 相关文章

  1. 1

    Haskell使用map调用具有多个参数的函数

  2. 2

    调用具有多个参数值的模板函数

  3. 3

    从修改默认值的函数调用具有不同默认参数的多个函数

  4. 4

    使用具有2个数组作为参数的合并函数进行合并排序

  5. 5

    从gridview超链接调用具有多个参数的Javascript函数

  6. 6

    从F#调用具有多个参数的C#函数

  7. 7

    根据条件语句调用具有多个参数的函数

  8. 8

    调用具有多个参数的函数的更简单方法?

  9. 9

    如何调用具有多个参数的HTTP POST请求?

  10. 10

    Java Reflection调用具有多个参数的方法

  11. 11

    如何调用具有多个参数的过程?

  12. 12

    如何调用具有多个参数的HTTP POST请求?

  13. 13

    通过PerformSelector iOS调用具有多个参数的方法

  14. 14

    使用AJAX调用具有多个参数的CFC

  15. 15

    如何调用具有多个参数的视图

  16. 16

    在Python中调用具有参考参数的.Net函数

  17. 17

    如何调用具有for_each循环参数的函数?

  18. 18

    调用具有较少参数的C函数?

  19. 19

    调用具有TypeAlias作为参数的函数?

  20. 20

    从JavaScript中的对象调用具有正确参数的函数

  21. 21

    调用具有较少参数的C函数?

  22. 22

    调用具有不同数量参数的函数

  23. 23

    在 Sinon 中假调用具有特定参数的函数

  24. 24

    调用具有相同值的多个函数

  25. 25

    使用具有多个参数的函数时出错

  26. 26

    从python字典调用具有多个参数的函数名到另一个函数

  27. 27

    调用具有多个参数和一个字符串数组的方法

  28. 28

    重新定义且模棱两可的函数调用具有数组参数

  29. 29

    调用具有默认参数的函数,该函数还具有回调

热门标签

归档