JQuery Pass参数为2个函数中的Vars返回undefined

时间:2018-02-14 19:33:46

标签: javascript jquery parameters

我有以下代码,我不知道为什么它返回trackingIds [i]在View和Click函数中未定义...我想填充一个数组,代码应该遍历每个数组索引并检查是否元素被徘徊或点击。第一个函数中的el_id和trackingIds [i]返回正确的值。我很感激任何帮助,因为我似乎无法解决这个问题。

O(n^2)

1 个答案:

答案 0 :(得分:3)

您需要在let中使用for-loop



jQuery(document).ready(function() {
  var trackingIds = ["elementid"];

  for (let i = 0; i < trackingIds.length; i++) {
    var el_id = jQuery('#' + trackingIds[i]);
    //console.log(el_id);
    //console.log(trackingIds[i]);
    el_id.click(function() {
      Click(trackingIds[i]);
    });
    
    el_id.mouseover(function() {
      View(trackingIds[i]);
    });
  }
});

function Click(a) {
  //do stuff...
  console.log("Click was called from: " + a);
}

function View(b) {
  // do stuff..
  console.log("View was called from: " + b)
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h1 id='elementid'>Click me!</h1>
&#13;
&#13;
&#13;

资源

  • let
      

    let语句声明一个块作用域局部变量,可选择将其初始化为一个值。