Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/385.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 JS在for循环内部创建动态变量_Javascript_Loops_For Loop_Dynamic - Fatal编程技术网

Javascript JS在for循环内部创建动态变量

Javascript JS在for循环内部创建动态变量,javascript,loops,for-loop,dynamic,Javascript,Loops,For Loop,Dynamic,出于某种原因,for循环中的动态变量不会在函数中更新,而是在控制台中更新 某人知道为什么会这样吗?非常感谢你的帮助: $(".numberOfImages").on("mousemove change", function(){ numberOfImages = this.value; changeImageNumber(); }); function changeImageNumber(){ for(var i = 0; i < numberOfImages; i++){

出于某种原因,for循环中的动态变量不会在函数中更新,而是在控制台中更新

某人知道为什么会这样吗?非常感谢你的帮助:

$(".numberOfImages").on("mousemove change", function(){
  numberOfImages = this.value;
  changeImageNumber();
});

function changeImageNumber(){
  for(var i = 0; i < numberOfImages; i++){
    console.log(numberOfImages);
    images[i] = "img/image" + i + ".jpg";
  }
}

它按预期工作,并没有任何错误,但不是全局变量,只是将值传递给函数

var numberOfImages=0; var图像=[]; $numberOfImages.onchange,函数{ numberOfImages=this.value; 更改图像编号; console.logimages }; 函数更改图像编号{ 图像=[]; console.lognumberOfImages; forvar i=0;i是的,有点用。但是for循环中numberOfImages的值仍然保持默认值=0。即使你改变了选择至少在我的情况下。。你知道为什么吗?我的整个代码如下所示:

var sliderWidthValue = 1;
var sliderHeightValue = 1;

var distanceLayerWidthValue = 45;
var distanceLayerHeightValue = 45;

var numberOfImages = 10;
var images = [];

$(window).load(function(){
  $("#loadingMessage").hide();
  $("main").show();
});

$(document).ready(function() {

changeImageNumber();

// Change number of images (not working yet)
$(".numberOfImages").on("mousemove change", function(){
  numberOfImages = this.value;
  changeImageNumber();
});

function changeImageNumber(){
  images = [];
  for(var i = 0; i < numberOfImages; i++){
    console.log(numberOfImages);
    images[i] = "img/image" + i + ".jpg";
  }
}

$.each(images, function(i, val) {
    $("<img />")
        .attr("src", val)
        .appendTo("#images")
        .addClass("image"+i);

    $(".image"+i)
        .wrap( "<div class=container"+i+"></div>" );

    containerChange();

    //change container size
    $(".sliderWidth").on("mousemove change", function(){
      sliderWidthValue = this.value;
      containerChange();
    });

    $(".sliderHeight").on("mousemove change", function(){
      sliderHeightValue = this.value;
      containerChange();
    });

    //Change distance between layers
    $(".distanceLayerWidth").on("mousemove change", function(){
      distanceLayerWidthValue = this.value;
      containerChange();
    });
    $(".distanceLayerHeight").on("mousemove change", function(){
      distanceLayerHeightValue = this.value;
      containerChange();
    });

    function containerChange(){
      $(".container"+i)
          .css('width', sliderWidthValue*10+(i*distanceLayerWidthValue) + "px")
          .css('height', sliderHeightValue*10+(i*distanceLayerHeightValue) + "px")
          .css('z-index', i*-1);
    }

});

});

这个for循环中的动态变量在函数中不更新是什么意思?你能展示更多的代码吗?你在哪里定义了变量numberOfImages和images?我的意思是变量numberOfImages应该是动态的。上面的代码是否足够,或者我是否也应该共享html代码?