Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在范围之外使用从Ajax调用的变量_Javascript_Html_Ajax_Instagram Api - Fatal编程技术网

Javascript 在范围之外使用从Ajax调用的变量

Javascript 在范围之外使用从Ajax调用的变量,javascript,html,ajax,instagram-api,Javascript,Html,Ajax,Instagram Api,我需要从jQueryAjax调用中获得返回的帮助,我不能将变量传递到范围之外。 我在一个带有计时器的数组上有一系列图像,最后一个图像是从ajax调用传递的变量 日志:获取404(未找到) 谢谢 $(document).ready(function() { // slideshow var preload = []; var i; var curr

我需要从jQueryAjax调用中获得返回的帮助,我不能将变量传递到范围之外。 我在一个带有计时器的数组上有一系列图像,最后一个图像是从ajax调用传递的变量

日志:获取404(未找到)

谢谢

               $(document).ready(function() {

               // slideshow
               var preload = [];
               var i;
               var current = 0;
               var slideshowInterval;
               var instagramInterval;
               var image;

               // instagram
               var settings = {
                  hashtags: "foo",
                  client_id: "", // instagram API key
                  images_to_fetch: 1, // fetch 1 images every request to instagram
               }

               function instagram() {
                  $.ajax({
                     dataType: "jsonp",
                     url: "https://api.instagram.com/v1/tags/" + settings.hashtags + "/media/recent",
                     data: {
                        access_token: null,
                        client_id: settings.client_id,
                        count: settings.images_to_fetch
                     },
                     success: data
                  });

               }

               function data(response) {
                     photos = response.data;
                     console.log("Number of pictures fetched: " + photos.length);
                     for(var i = 0; i < photos.length; i++) {

                        photo = photos[i];
                        image = photo.images.standard_resolution.url; // get photo url
                     }

                     console.log("new instagram image ======> : " + image);                  

                  } // data response


               var path = [ // relative paths of images
                  'images/cat.jpg',
                  'images/fox.jpg',
                  'images/dog.jpg',
                  image // passed variable from ajax
               ];

               //preload images    
               for(i = 0; i < path.length; i++) {
                  preload[i] = new Image();
                  preload[i].src = path[i] + "?";
               }

               function slideshow() {
                  var slideshow = $("#slideshow");

                  slideshow.fadeTo('fast', 0, function() {
                     slideshow.css({
                        'background': 'url(' + preload[current++ % preload.length].src + new Date().getDate() + ')'
                     });
                  }).fadeTo('fast', 1);
               }


               setInterval(instagram, 15000);

               setInterval(slideshow, 15000);

            });
$(文档).ready(函数(){
//幻灯片放映
var预载=[];
var i;
无功电流=0;
var幻灯片放映间隔;
var instagramInterval;
var图像;
//instagram
变量设置={
标签:“foo”,
客户端id:,//instagram API密钥
images\u to\u fetch:1,//每次请求instagram时都会获取1张图像
}
函数instagram(){
$.ajax({
数据类型:“jsonp”,
url:“https://api.instagram.com/v1/tags/“+settings.hashtags+”/media/recent”,
数据:{
访问令牌:null,
客户端id:settings.client\u id,
计数:settings.images\u到\u获取
},
成功:数据
});
}
功能数据(响应){
照片=响应数据;
log(“获取的图片数:+photos.length”);
对于(var i=0;i:”+图像);
}//数据响应
var path=[//图像的相对路径
'images/cat.jpg',
'images/fox.jpg',
'images/dog.jpg',
image//从ajax传递的变量
];
//预加载图像
对于(i=0;i
您不应该使用
$(“#图像包装器”).attr('instagram-data',image)。如果要将任意数据附加到元素,请使用
$('…').data('instagram',image)
。你不能发明属性名。如果您试图使用数据属性,则它们具有
data-
前缀,而不是
-data
后缀。这将是
data instagram
。好的,我删除这一行,删除关于请求的任何建议。我认为您假设变量
image
和数组
path
之间存在永久连接,但这不是javascript的工作方式。相反,每次AJAX调用返回时,您都需要手动更新
preload
数组。是的,您是对的。我在想如何做到这一点,所以在这张幻灯片中,除了更改每个请求之外,唯一的图像是来自Instagram。至于你的基本问题,你不能从传递给异步服务的回调返回值。