Почему я не могу скрыть эту строку таблицы в IE с помощью jQuery? - PullRequest
5 голосов
/ 13 марта 2010

Я не могу заставить строку таблицы исчезать в IE. Это работает в Chrome, но не IE. Он просто становится действительно «легким» и остается на экране. Я пробовал IE8 с и без режима совместимости.

<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">

function hideIt()
{
    $('#hideme').fadeTo("slow", 0.0);
}

</script>
</head>
<body>
<table>
 <tr id='hideme'>
  <td>Hide me!</td>
 </tr>
</table>
<button onclick='hideIt();'>Hide</button>
</body>
</html>

Есть ли обходной путь / решение для плавного замирания?

Ответы [ 2 ]

15 голосов
/ 13 марта 2010

Да, это ошибка (функция?) В IE. Если вы примените его к элементам td вместо tr, вы получите желаемый эффект. Таким образом,

$('#hideme>td').fadeTo("slow", 0.0);
0 голосов
/ 15 марта 2010

Вот что я в итоге сделал, и он работал довольно хорошо во всем, хотя и довольно сложно (и с некоторыми ошибками - подробнее об этом через минуту - посмотрите, сможете ли вы это заметить):

function FadeInFrom(item,from_bg,from_fg,call)
{
    $to_bg = $(item).css('background-color');
    $(item).css('background-color',from_bg);

    $to_fg = $(item + '>td').css('color');
    $(item + '>td').css('color',from_fg);

    var anim = {};
    anim['backgroundColor'] = $to_bg;

    $(item).animate(anim,'slow');

    var anim2 = {};
    anim2['color'] = $to_fg;

    $(item + '>td').animate(anim2,'slow');
}

Это позволяет получить текущий цвет элемента, а затем анимировать его до этого цвета из указанных цветов.

Что касается этой ошибки, если вы попробуете приведенный выше код, вы заметите, что ссылки и другие элементы DOM могут быть неправильно анимированы этим. Я оставляю это кому-то, чтобы попытаться найти решение для этого.

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