2012-05-02 3 views
1

Я пытаюсь оживить непрозрачность td с помощью jquery. Когда нажимается один td, я хочу анимировать любые td и исчезать в td, на который был нажат.Анимация td с помощью jquery

Я получаю странную проблему с мерцанием:

http://jsfiddle.net/s4gtp/

ТД будучи нажал на выцветает, но затем быстро выцветает и снова. Я проверил firebug, и событие запускается только один раз. Я пробовал тот же код с неупорядоченным списком, и все работает так, как ожидалось.

Любые идеи, почему это может произойти?

+1

ваш Jsfiddle работает как на хром, так и на IE для меня – jazzytomato

+1

Я не могу помочь, но я знаю, что анимированные таблицы и ячейки таблицы являются *кошмар*. Если вы можете изменить это, чтобы использовать divs или список, это будет проще в долгосрочной перспективе. –

ответ

1

Попробуйте добавить в .not($(this)) к первой анимации:

$('tr td').click(function() { 
    var i = $(this).index(); 
    $('tr td').not($(this)).animate({'opacity': '0.1'}); 
    $('tr td.item' + i).animate({'opacity': "1"}); 
}); 

Кроме того, необходимо указать border-collapse:separate; в вашем CSS для таблицы. Это позволит решить эту проблему вы имеете в Firefox:

Вот обновленный jsFiddle для вас>http://jsfiddle.net/s4gtp/4/

Как и другие комментаторы заявляли, хотя, я не видел ни одного «мерцающий», поэтому я полагаю, вы имеете в виду, что щелкнутый элемент исчезает, а затем исчезает ...

+0

Пробовал это, а также: не селектор, это не устраняет проблему. – Armatus

+0

Кажется, что это особая проблема Firefox - обновленная скрипка по-прежнему делает то же самое для меня –

+1

Извините, я понимаю, что вы имеете в виду сейчас. Просто проверил с Firefox на моем MBP, и теперь я вижу проблему. Вы можете использовать свойство 'border-collapse' для решения проблемы. Я соответствующим образом обновил свой ответ. – BenM

Смежные вопросы