línea blanca insertada durante el segundo filtro usando jquery (error de Chrome)

Tengo un filtro que oculta elementos de una tabla que no pasan una prueba (tiempo inferior a x horas). Todo funciona bien la primera vez. Elegí el tiempo. Los elementos que no pasan la prueba están ocultos. Recargo para mostrar todo. Intento filtrar de nuevo. Esta vez, cuando todas las demás filas están ocultas, hay una línea en blanco que se inserta entre los encabezados de mi tabla y el contenido. Cada vez que vuelvo a ejecutar el filtro, se inserta otra línea.

Aquí está el código:

HTML:

<div id="timeSelect">
<select id="FilterTimeList" name="FilterTimeList"><option value="">-- select Time --      
</option>
</select>
</div>

<a id="filterLink" href="#" onclick="timeFilter(this);">Filter</a>
<table width="100%">
<tr>
<td>Log Id</td>
<td>Message</td>
<td>SourceStackTrace</td>
<td>awData</td>
<td>LogDate</td>
</tr>
<tr class="list">
<td class="myTitle">1</td>
<td>this is my message</td>
<td></td><td></td>
<td class="exceptionDate">5/4/2011 5:41:00 PM</td>
<td></td>
</tr> 
<tr class="list">
<td class="myTitle">2</td>
<td>this is my message 2</td>
<td></td><td></td>
<td class="exceptionDate">4/27/2011 5:41:24 PM</td>
<td>
</td>
</tr> 
<tr class="list">
<td class="myTitle">12</td>
<td>this is my message 12</td>
<td></td><td></td>
<td class="exceptionDate">5/16/2011 12:06:38 PM</td>
<td></td>
</tr> 
</table>

Javascript:

<script src="http://code.jquery.com/jquery-1.5.1.min.js" type="text/javascript"/>    
<script type="text/javascript">
var myOptions =
{
  0: 'Show All',
  1: 'Last 12 hours',
  2: 'Last 24 hours'
};
$.each(myOptions, function (val, text) {
$('<option />').val(val).text(text).appendTo('#timeSelect select');
});


function timeFilter(a) {
  $('.test').hide();
  var chosenTime = $('#timeSelect select').val();
  var timeCompare;
  switch (chosenTime) {
   case '1':
   timeCompare = 12;
   break;
    case '2':
    timeCompare = 24;
    break;
    }
   var now = new Date();
   var nowHours = now.setHours(now.getHours() - timeCompare);
   var newDate = new Date(nowHours);
   if (chosenTime > 0) {
   var myDateClass = $('.exceptionDate')
   var i = 0
   $(myDateClass).each(function () {
   var myDateClassVal = $(this).text();
   var myDate = new Date(myDateClassVal);
   if (myDate < newDate) {
      $('tr:eq(' + i + ')').slideUp();
      }
      i++;
      });
 } 
 else {
   $('.exceptionDate').parent().slideDown();
  }
}
 </script>

preguntado el 16 de mayo de 11 a las 20:05

1 Respuestas

Creo que es posible que le falte algo de código en su javascript, ya que tiene un '});' adicional después de su código de opciones.

Sin embargo, no estoy seguro de dónde viene tu línea adicional. Lo hice funcionar en jsFiddle con 1.5.2, por lo que podría ser un error que se corrigió en jQuery ...

http://jsfiddle.net/QhkGk/

contestado el 17 de mayo de 11 a las 01:05

Sí, eso fue un error de copia de mi parte. Copié su código en VS y lo ejecuté y todavía obtengo el mismo error. Supongo que eso significa que no es js o html lo que lo está causando. - dan_vitch

También estoy usando Chrome como mi navegador. - dan_vitch

Probé en IE9 y la línea blanca no aparece. Es un problema de Chrome. - dan_vitch

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.