Javascript for循环的行为不符合预期

Javascript for循环的行为不符合预期,javascript,jquery,Javascript,Jquery,我在javascript中遇到了意想不到的行为,它利用了。这一部分正在发挥作用: $(function(){ var minWidth = 450; if (minWidth <= $(window).width()) { $('.tile-portfolio').tile(3); $(window).load(function() { $('tile-portfolio').tile(3);

我在javascript中遇到了意想不到的行为,它利用了。这一部分正在发挥作用:

  $(function(){
      var minWidth = 450;
      if (minWidth <= $(window).width()) {
        $('.tile-portfolio').tile(3);
        $(window).load(function() {
          $('tile-portfolio').tile(3);
        });
   }
     });
…但这部分不起作用:

}


如果您能提供任何帮助,我们将不胜感激

您的循环和使用jQuery时出现错误:

for (var i = 0, i < tile.length; i++) {  // , instead of ;
  $.function(){                          // $. instead of $(
    $(tile[i]).tile(3);
将其更改为:

 for (var i = 0; i < tile.length; i++) {
    $(function(){
          // ...
      })
这两种语法错误都会阻止代码运行。 在浏览器的开发者工具中打开控制台,您会看到一个语法错误


$是函数和对象,但函数对象不是对象属性的有效键,因此object.function{…将始终是无效语法。

必须用分号替换逗号;在for循环定义中:

for (var i = 0, i < tile.length; i++) {
______________^
应该是:

for (var i = 0; i < tile.length; i++) {

希望这有帮助。

除了其他答案,它不起作用,因为当第二个代码块命中$window.load处理程序时,我不再具有您期望的值:它是由循环定义的,该循环已完成,因此我的值为3

$(window).load(function() {
  //this line won't be what you expect
  //because this is an asynchronous event handler method
  $(tile[i]).tile(3);
  //check by doing this:
  alert("i at this point is: " + i);
});

循环中有一个逗号而不是分号。不工作的版本有各种语法错误。我建议您在某些东西不工作时查看错误控制台。它会主动告诉您出了什么问题。哦,天哪,为什么不只是$'.tile公文包、.tile博客、.tile qiita.tile3呢
$(window).load(function() {
  //this line won't be what you expect
  //because this is an asynchronous event handler method
  $(tile[i]).tile(3);
  //check by doing this:
  alert("i at this point is: " + i);
});