小编Tim*_*imG的帖子

在多个for循环中使用相同的变量名是不好的做法吗?

我只是使用JSHint来绘制一些JavaScript代码.在代码中我有两个for循环,这两个使用如下:

for (var i = 0; i < somevalue; i++) { ... }
Run Code Online (Sandbox Code Playgroud)

因此,两个for循环都使用var i进行迭代.

现在JSHint向我展示了第二个for循环的错误:"'我'已经定义了".我不能说这不是真的(因为它显然是)但我一直认为这无关紧要因为var i仅用于那个特定的地方.

以这种方式使用for循环是不好的做法吗?我应该在我的代码中为每个for循环使用不同的变量

//for-loop 1
for (var i = 0; ...; i++) { ... }

//for-loop 2
for (var j = 0; ...; j++) { ... }
Run Code Online (Sandbox Code Playgroud)

或者这是我可以忽略的错误(因为它不会破坏我的代码,它仍然会做它应该做的事情)?

JSLint顺便说一下.停止在第一个for循环验证,因为我没有在函数的顶部定义var i(这就是我首先切换到JSHint的原因).所以根据这个问题的例子:我应该使用JSLint还是JSHint JavaScript验证? - 无论如何我应该使用像这样的for循环来确认JSLint:

...
var i;
...
//for-loop 1
for (i = 0; ...; i++) { ... }
...
//for-loop 2
for (i = 0; ...; i++) { ... }
Run Code Online (Sandbox Code Playgroud)

这对我来说也很好看,因为这样我应该避免JSLint和JSHint中的错误.但我不确定的是,我是否应该为每个for循环使用不同的变量,如下所示:

...
var i, …
Run Code Online (Sandbox Code Playgroud)

javascript for-loop jslint jshint

61
推荐指数
4
解决办法
1万
查看次数

如何使用jquery检查select元素是否仍处于"打开"/活动状态

反正我是否可以通过jQuery检测到当前选择的表单元素是否处于活动状态?

我创建了这个小提琴来演示这个问题:

http://jsfiddle.net/E2PhT/2/

当您将鼠标悬停在"搜索"-Link上时,搜索表单会显示出来.当您现在单击选择字段以打开内部选项,然后在不选择任何内容的情况下,将表单保留在右侧(将鼠标移动到灰色块的右边缘),选择字段保持打开状态eles消失(应该如此).

现在我想要使select元素再次处于非活动状态,因此只要select元素仍处于打开状态,它就不会保持打开状态或阻止表单的其余部分消失.

所以,无论哪种方式,我都必须以某种方式检测选择字段是否仍处于打开或活动状态.有没有办法用jQuery检查这个状态?

谢谢你的帮助.

forms jquery

6
推荐指数
1
解决办法
1万
查看次数

如何使用javascript/jQuery增加/减少十六进制颜色值

是否可以在jQuery/javascript中逐步增加或减少十六进制颜色值?

我想做的是这样的事情:

适应类似的for-loop

for (var i = 0; i <= 100; i++) {
    console.log(i);
}
Run Code Online (Sandbox Code Playgroud)

我想做点什么

for (var color = 000000; color <= ffffff; color++) {
    console.log(color);
}
Run Code Online (Sandbox Code Playgroud)

没有任何转换.

那可能吗?我已经尝试过了:

for (var color = parseInt('000000', 16); color <= parseInt('ffffff', 16); color++){
    console.log(color.toString(16));
}
Run Code Online (Sandbox Code Playgroud)

它工作但它非常慢(我得到警告,脚本正在减慢网站的速度,如果我想停止脚本).

我想这样做的原因是:我想在一定的时间间隔内更改svg渐变的颜色停止.如果我有这样的svg(简化):

<svg>
    ...
    <linearGradient>
        <stop offset="0%"  stop-color="#C8E3EF"/>
        <stop offset="100%"  stop-color="#C8E3EF"/>
    </linearGradient>
    ...
</svg>
Run Code Online (Sandbox Code Playgroud)

该梯度当然会显示为纯色.现在我想逐步改变它,例如

<svg>
    ...
    <linearGradient>
        <stop offset="0%"  stop-color="#dfcf99"/>
        <stop offset="100%"  stop-color="#c5b6ec"/>
    </linearGradient>
    ...
</svg>
Run Code Online (Sandbox Code Playgroud)

在每个步骤或间隔,我想要更接近目标颜色的一个值(通过加/减).最后,结果应该是平滑的颜色动画.没有转换可能吗?它不一定是for-loop btw.我只是选择它来说明我的想法.

javascript jquery svg colors coloranimation

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

javascript ×2

jquery ×2

coloranimation ×1

colors ×1

for-loop ×1

forms ×1

jshint ×1

jslint ×1

svg ×1