2013-09-30 1 views
0

jQuery 검사기에서 표시 한 오류에 대한 툴팁을 그룹화해야합니다. 그래서 setInterval로 간단한 루프를 작성하여 동일한 행에 오류 클래스가있는 입력이 두 개 이상 있는지 확인합니다.Opera에서 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에서 열린 요소가 깜박입니다.

+0

"깜박임"은 매우 짧은 시간에 제거되고 추가되는'.xrror' 요소에 있습니다. 일부 브라우저는이 모든 렌더링을 건너 뜁니다. 그러나 Opera에서는 그렇지 않습니다. – Brian

답변

2

많은 리소스를 소비하는 50 밀리 초마다 setInterval 함수를 사용하는 대신 제출 또는 변경과 같은 이벤트에 함수를 바인딩해야합니다. 폼 유효성 검사와 관련이있는 것으로 보이므로 사용자가 필드를 수정하지 않으면 아무 것도 할 필요가 없습니다.

+0

왜 나는 그것에 대해 생각하지 않았다 ... 감사합니다! – marverix

관련 문제