JavaScript addEventListener有多个参数的问题

时间:2017-08-17 06:09:50

标签: javascript jquery

这是提示: 在事件监听器中,DOMContentLoaded为每个第二个输入元素设置两个addEventListener方法(使用inputElements[]数组和相应的索引)并传递第一个和第二个输入元素 值(使用inputElements[].value)和相应的span元素(使用spanElements[])。由于您需要传递参数,请使用以下构造:

inputElements[index].addEventListener('blur',function(){ fCompareInput(arguments); })

这是功能: function fCompareinput(value1,value2,display)

这就是我所拥有的:

inputElements[2].addEventListener('blur', function() {
    fCompareInput(inputElements[2].value);
});
inputElements[2].addEventListener('blur', function() {
    fCompareInput(spanElements[2].value);
});

inputElements[4].addEventListener('blur', function() {
    fCompareinput(inputElements[4].value);
});
inputElements[4].addEventListener('blur', function() {
    fCompareinput(spanElements[4].value);
});

我不认为我正确地传递了论据。

1 个答案:

答案 0 :(得分:0)

使用循环更轻松地浏览bool busy; void HandleToggled(object sender, Xamarin.Forms.ToggledEventArgs e) { if (busy == true) return; busy = true; var aSwitch = ((sender == WomanGenderSwitch) ? ManGenderSwitch : WomanGenderSwitch); aSwitch.IsToggled = !aSwitch.IsToggled; busy = false; } 集合,然后绑定事件侦听器。也:

  1. 您可以在inputElements回拨
  2. 中放置多个函数调用
  3. 在回调中使用blur来引用已触发事件的DOM节点
  4. 我们假设您只希望索引为this2的元素绑定此类事件,然后我们就可以执行此操作:

    4

    补充:

    • 如果要检索集合中所有偶数元素(按索引),请使用:

      // Define which indexes you want to bind eventistener to
      var indexes = [2,4];
      
      // Loop through the entire collection
      for (let i = 0; i < inputElements.length; i++) {
          if (indexes.indexOf(i) !== -1) {
              inputElements[i].addEventListener('blur', function() {
                  fCompareinput(this.value);
                  fCompareinput(spanElements[i].value);
              });
          }
      }
      
    • 如果要检索除第一个元素之外的所有偶数元素,请使用:

      if (i % 2 === 0)
      

    例如:

    if (i % 2 === 0 && i !== 0)
    

    由于您已使用 jQuery 标记了您的问题,因此还有一个基于jQuery的解决方案:更简单,但当然会产生必须加载库的开销。

    // Loop through the entire collection
    for (let i = 0; i < inputElements.length; i++) {
        if (i % 2 === 0) {
            inputElements[i].addEventListener('blur', function() {
                fCompareinput(this.value);
                fCompareinput(spanElements[i].value);
            });
        }
    }
    

    ...或者,如果您只想选择偶数编号的索引:

    var indexes = [2,4];
    
    $(inputElements).each(function(i) {
        if (indexes.indexOf(i) !== -1) {
            $(this).on('blur', function() {
                fCompareinput(this.value);
                fCompareinput($(spanElements).get(i).val());
            });
        }
    });