Opera中的SetInterval会导致选择闪烁

时间:2013-09-30 14:33:07

标签: javascript jquery html opera setinterval

我需要对jQuery Validator显示的错误进行工具提示分组。所以我用setInterval编写了一个简单的循环来检查同一行中是否有多个带错误类的输入。

   setInterval(function() {
      $('.xrror').remove();
      $('div.row-4:has([name].error)').each(function() {
         var tmp = $('[name].error', this);
         if(tmp.length > 1) {
            $('label.error', this).hide();

            tmp.last().parent().append(
               $(document.createElement('label')).addClass('error').addClass('xrror').append(
                  $(document.createElement('span')).text('Fields with errors were marked with red color')
               )
            );
         } else {
            $('[name].error', this).parent().find('label.error').show();
         }
      });
   }, 50);

在Opera中,它会导致打开的Select元素闪烁。

1 个答案:

答案 0 :(得分:2)

不是每50毫秒使用一个setInterval函数,这会占用大量资源,你应该在提交或更改等事件上绑定你的函数。由于它似乎与表单验证有关,除非用户修改字段,否则您无需执行任何操作。