белая линия, вставленная во второй фильтр с помощью jquery (Chrome Bug) - PullRequest
0 голосов
/ 17 мая 2011

У меня есть фильтр, который скрывает элементы таблицы, которые не проходят тест (время меньше, чем х часов).Все отлично работает с первого раза.Я выбрал время.Элементы, не прошедшие тестирование, скрыты.Я перезагружаюсь, чтобы показать все.Я пытаюсь снова фильтровать.На этот раз, когда все остальные строки скрыты, между заголовками таблицы и содержимым вставлена ​​пустая строка.Каждый раз, когда я перезапускаю фильтр, вставляется другая строка.

Вот код:

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>

1 Ответ

2 голосов
/ 17 мая 2011

Я думаю, что вам может не хватать некоторого кода в вашем javascript, так как у вас есть дополнительный '});' после кода ваших опций.

Не знаю, откуда взялась ваша дополнительная линия. Я получил это работает в jsFiddle с 1.5.2, так что это может быть ошибка, которая была исправлена ​​в jQuery ...

http://jsfiddle.net/QhkGk/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...