【发布时间】:2012-05-19 20:22:58
【问题描述】:
Jshint.com 建议以下代码:
Line 150: }, false );
Don't make functions within a loop.
但是,它让我不必多次编写 document.getElementById(),而是可以将 id 保存在一个数组中并循环遍历它们。
我觉得更简洁和可维护的代码。
function styleTwitter( pair_array )
{
var i, input, label;
for ( i = 0; i < pair_array.length; i+=2 )
{
input = document.getElementById( pair_array[ i ] );
label = document.getElementById( pair_array[ i + 1 ] );
input.addEventListener( "focus", function()
{
if( input.value === '' )
{
label.style.opacity = 0;
input.style.border = '1px solid #888888';
}
}, false );
input.addEventListener( "blur", function()
{
if( input.value === '' )
{
label.style.opacity = 1;
new EffectsFont( label ).fade( 'up', 150 );
input.style.border = '1px solid #dddddd';
}
}, false );
}
【问题讨论】:
-
这段代码真的有效吗?
-
刚刚更新了它...我正在写它..还没有运行它..点是...而不是多次调用 document.getElementById...我只是想循环ids 并设置在一个循环中。
-
试试代码,然后看看 JSLint 抱怨的原因。我敢打赌,代码并没有按照你的预期去做。
-
你没有明白我的意思。 试试代码。
标签: javascript