好的,有这样的问题......我正在尝试减少验证字段所需的代码量。在这种情况下,我创建了包含要绑定事件的元素的 id 的数组。像这样:
var fields = new Array('#edit-field-first-name', '#edit-field-last-name', '#edit-field-mobile');
然后我在一个循环中绑定事件:
for(var i = 0; i < fields.length; i++){
if($('#user-profile-form ' + fields[i]).length > 0){
var $obj = $('#user-profile-form ' + fields[i]);
$obj.bind({
blur : function(){
if(!reg_chars.test($obj.val())){
$obj.css('border','1px solid #A14')
.parent().children('div.description').css('color', '#A14');
}else{
$obj.css('border-style','solid').css('border-color','#C5C3C3 #EDEDED #EDEDED #C5C3C3').css('border-width','1px')
.parent().children('div.description').css('color', '#333');
};
}
})
}
}
现在奇怪的事情发生了。它正在正确触发“模糊”事件。但它总是引用数组中的最后一个元素。看起来它总是使用相同的对象,并且每次循环迭代都覆盖它。
所以需要帮助......有什么可以解决的?