Javascript for循环的行为不符合预期
我在javascript中遇到了意想不到的行为,它利用了。这一部分正在发挥作用: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);
$(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);
});