Javascript JS如果在for循环的内部
我试图将其重写为for循环;我下面的尝试失败了。有什么想法吗Javascript JS如果在for循环的内部,javascript,jquery,Javascript,Jquery,我试图将其重写为for循环;我下面的尝试失败了。有什么想法吗 jQuery.event.add(window, "load", resizeFrame); jQuery.event.add(window, "resize", resizeFrame); function resizeFrame() if ($(window).width() < 232){ $("#grid-content").css( 'width', '232px' ); }else i
jQuery.event.add(window, "load", resizeFrame);
jQuery.event.add(window, "resize", resizeFrame);
function resizeFrame()
if ($(window).width() < 232){
$("#grid-content").css( 'width', '232px' );
}else if ($(window).width() < 458){
$("#grid-content").css( 'width', '232px' );
}else if ($(window).width() < 684){
$("#grid-content").css( 'width', '458px' );
}else if ($(window).width() < 910){
$("#grid-content").css( 'width', '684px' );
}else if ($(window).width() < 1136){
$("#grid-content").css( 'width', '910px' );
};
};
jQuery.event.add(窗口,“加载”,调整框架大小);
添加(窗口,“调整大小”,调整框架大小);
函数resizeFrame()
如果($(窗口).width()<232){
$(“#网格内容”).css('width','232px');
}else if($(窗口).width()<458){
$(“#网格内容”).css('width','232px');
}else if($(窗口).width()<684){
$(“#网格内容”).css('width','458px');
}else if($(窗口).width()<910){
$(“#网格内容”).css('width','684px');
}else if($(窗口).width()<1136){
$(“#网格内容”).css('width','910px');
};
};
结果是,不管窗口大小如何,div(#网格内容)都在3000px左右
jQuery.event.add(window, "load", resizeFrame);
jQuery.event.add(window, "resize", resizeFrame);
function resizeFrame()
for (var x=232;x<=3000;x=x+226){
if ($(window).width() < x ){
$("#grid-content").css( 'width', x +'px' );
};
};
};
jQuery.event.add(窗口,“加载”,调整框架大小);
添加(窗口,“调整大小”,调整框架大小);
函数resizeFrame()
对于(var x=232;x,您需要在第一次匹配时退出循环,这样直到最后才会继续,如下所示:
jQuery.event.add(window, "load", resizeFrame);
jQuery.event.add(window, "resize", resizeFrame);
function resizeFrame() {
for (x=232;x<=3000;x=x+226){
if ($(window).width() < x ){
$("#grid-content").css( 'width', x +'px' );
break; //add this
}
}
}
jQuery(window).bind("load resize", function () {
var w = $(window).width();
for (var x=232;x<=3000;x+=226) {
if (w < x ) {
$("#grid-content").width(x);
break;
}
}
});
jQuery.event.add(窗口,“加载”,调整框架大小);
添加(窗口,“调整大小”,调整框架大小);
函数resizeFrame(){
对于(x=232;x,您需要在第一次匹配时退出循环,这样直到最后才会继续,如下所示:
jQuery.event.add(window, "load", resizeFrame);
jQuery.event.add(window, "resize", resizeFrame);
function resizeFrame() {
for (x=232;x<=3000;x=x+226){
if ($(window).width() < x ){
$("#grid-content").css( 'width', x +'px' );
break; //add this
}
}
}
jQuery(window).bind("load resize", function () {
var w = $(window).width();
for (var x=232;x<=3000;x+=226) {
if (w < x ) {
$("#grid-content").width(x);
break;
}
}
});
jQuery.event.add(窗口,“加载”,调整框架大小);
添加(窗口,“调整大小”,调整框架大小);
函数resizeFrame(){
对于(x=232;x,您不需要一个循环来取整到离散的步骤,这是一个简单的算法
function resizeFrame() {
var w= $(window).width();
w-= (w-6) % 226;
if (w<232) w= 232;
$('#grid-content').width(w);
}
函数resizeFrame(){
var w=$(window.width();
w-=(w-6)%226;
如果(w您不需要一个循环来取整到离散的步骤,那么这是一个简单的算法
function resizeFrame() {
var w= $(window).width();
w-= (w-6) % 226;
if (w<232) w= 232;
$('#grid-content').width(w);
}
函数resizeFrame(){
var w=$(window.width();
w-=(w-6)%226;
如果(wIs)是函数resizeFrame()
中缺少的{
在您的问题中有输入错误?请使用var
在for循环中声明x
,否则它将成为全局变量。是函数resizeFrame()中缺少的{
)
问题中的输入错误?使用var
在for循环中声明x
,否则它将成为一个全局变量。是我,还是OP的if()
语句的预期结果似乎与for()的预期结果不同步
loop?@patrick:哦,说得好,我没有发现!if
中的向下取整行为似乎比向上取整更有用。将答案改为向下取整而不是向上取整。(也放弃了3000
检查,因为我的猜测是这样的,if
案例中的1136限制仅仅是任意的上限。)谢谢。如果你有时间,你能解释一下吗?n-=n%chunk
是一种习惯用法,可以将chunk
四舍五入到最接近的倍数。它使用%
运算符除以chunk
并取余数;从原始值中减去余数,则保留四舍五入倍数。(需要使用-6
来对齐块,使它们位于6232,
而不是0226,
)是我,还是OP的if()
语句的预期结果似乎与for()的预期结果不同步
loop?@patrick:哦,说得好,我没有发现!if
中的向下取整行为似乎比向上取整更有用。将答案改为向下取整而不是向上取整。(也放弃了3000
检查,因为我的猜测是这样的,if
案例中的1136限制仅仅是任意的上限。)谢谢。如果你有时间,你能解释一下吗?n-=n%chunk
是一种习惯用法,可以将chunk
四舍五入到最接近的倍数。它使用%
运算符除以chunk
并取余数;从原始值中减去余数,则保留四舍五入倍数。(需要-6
来对齐块,使它们位于6232,
而不是0226,
)+1当@bobince显示了一个更简单的解决方案时,您正确地指出了他的for循环失败的原因。+1当@bobince显示了一个更简单的解决方案时,您正确地指出了他的for循环失败的原因。