传递给javascript函数的值在到达时会发生变化

时间:2015-09-03 20:27:42

标签: javascript jquery facebook

我将facebook相册ID传递给某个功能,当它到达时,该值会发生变化:

ALBUMID就像 somenumbers333 而且该函数显示的是somenumbers332

我注意到,当引用者粉丝专辑与其最后三位数(333)的粉丝专页ID类似且FanPage以相同的三位数字-1(332)结束时,会发生这种情况。 一些FanPages的专辑有这种模式:三个最后的数字相似。他们的专辑中有一些完成(在这个例子中)所有这些都在333或332并且FanPage Id在332完成(我不知道原因)。如果我将值发送到函数somenumbers332,以便相册ID以相同的三位数完成,则显示正确的相册ID。只有当这种模式发生时:如果专辑ID与FanPage ID完全不同,它将正确显示该值。

但在其他情况下,价值在飞行到功能期间如何变化?

如果此处的访问令牌不起作用,请尝试使用您的访问令牌。我会尽力保持更新。
第一个代码有问题(模式)。 第二不是

var html="";
var url = "https://graph.facebook.com/120185216968/albums?access_token=CAACEdEose0cBAN8ifZBF4oeOgbBcq6TDqpz4SeFWAT6jg84uZB23lMQQnFtH3AvZBZBea5i0TVpXZCHCJlLjk0HZB0GhJalqq29MS3qhBgUme95Q02ZBXMoJkwuIH0SkgLYFTWUdyNuZCsKvAzFqAJAstUliawp1ZCXQc4WnqnIkGUjZCzLBMAaUm1N4NbWTJcQ7IbcR2P5mzPUQd6ZAKLrJQI9";

$.getJSON(url, function(json) {
  $.each(json.data, function(i, fb) {
    html += "<br><div onclick='func(" + fb.id + ")' style='background:red'>ClickToSee " + fb.id + "</div>";
  });
  $('#iddiv').html(html);
});

function func(id) {
  $('#showID').append('<br>' + id);
}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<div id="showID" style="background:#0C6">Show id here</div>
<div id="iddiv"></div>

var html="";
var url = "https://graph.facebook.com/217557721786669/albums?access_token=CAACEdEose0cBAN8ifZBF4oeOgbBcq6TDqpz4SeFWAT6jg84uZB23lMQQnFtH3AvZBZBea5i0TVpXZCHCJlLjk0HZB0GhJalqq29MS3qhBgUme95Q02ZBXMoJkwuIH0SkgLYFTWUdyNuZCsKvAzFqAJAstUliawp1ZCXQc4WnqnIkGUjZCzLBMAaUm1N4NbWTJcQ7IbcR2P5mzPUQd6ZAKLrJQI9";

$.getJSON(url, function(json) {
  $.each(json.data, function(i, fb) {
    html += "<br><div onclick='func(" + fb.id + ")' style='background:red'>ClickToSee " + fb.id + "</div>";
  });
  $('#iddiv').html(html);
});

function func(id) {
  $('#showID').append('<br>' + id);
}
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<div id="showID" style="background:#0C6">Show id here</div>
<div id="iddiv"></div>

1 个答案:

答案 0 :(得分:1)

我怀疑这是由一些整数溢出引起的。最好的办法是将ID作为字符串传输以避免所有复杂情况。

这里我稍微修改了你的函数,将值作为字符串传递,它似乎工作正常。

&#13;
&#13;
var html="";
var url = "https://graph.facebook.com/120185216968/albums?access_token=CAACEdEose0cBAN8ifZBF4oeOgbBcq6TDqpz4SeFWAT6jg84uZB23lMQQnFtH3AvZBZBea5i0TVpXZCHCJlLjk0HZB0GhJalqq29MS3qhBgUme95Q02ZBXMoJkwuIH0SkgLYFTWUdyNuZCsKvAzFqAJAstUliawp1ZCXQc4WnqnIkGUjZCzLBMAaUm1N4NbWTJcQ7IbcR2P5mzPUQd6ZAKLrJQI9";

$.getJSON(url, function(json) {
  $.each(json.data, function(i, fb) {
    html += "<br><div onclick='func(\"" + fb.id + "\")' style='background:red'>ClickToSee " + fb.id + "</div>";
  });
  $('#iddiv').html(html);
});

function func(id) {
  $('#showID').append('<br>' + id);
}
&#13;
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<div id="showID" style="background:#0C6">Show id here</div>
<div id="iddiv"></div>
&#13;
&#13;
&#13;