这种方式不起作用(元素从函数中拉出来)。调用事件侦听器 - 两种方式之一工作,有什么不同?
function styleTwitter1(pair_array)
{
var i;
var input;
var label;
var font_size;
for (i = 0; i < pair_array.length; i+=2)
{
/*
*/
input = document.getElementById(pair_array[ i ]);
label = document.getElementById(pair_array[ i + 1 ]);
/*
*/
label.fontSize = window.getComputedStyle(label, null).getPropertyValue("font-size");
/*
*/
input.addEventListener("keypress", function()
{
label.style.opacity = 0;
}, false);
/*
*/
input.addEventListener("focus", function()
{
if(input.value === '')
{
label.style.opacity = 0.2;
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);
/*
*/
}
}
但是,这样做(元素是从函数外部注入的)。
function initTwitterStyle(input, label)
{
/*
*/
input.addEventListener("keypress", function()
{
label.style.opacity = 0;
}, false);
/*
*/
input.addEventListener("focus", function()
{
if(input.value === '')
{
label.style.opacity = 0.2;
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);
/*
*/
}
我最终会做,如果我不能想出不同的是外面拉我的阵列循环,只是与元素注入twitterStyle2。
目前,我不能得到一个错误代码,但只有一对正在初始化..然后EffectsFont不起作用。
Jshint警告不要在循环中创建函数,但我不明白为什么?什么是问题?
定义“不工作”,做他们没有工作,或做他们所有的行为,比如说,在最后一对数组? –
你可以发布你用来调用这些函数的HTML吗?否则很难猜测你传递给函数的参数。 –
需要知道第一个示例中实际上是什么'pair_array'。 –