Кое что выяснил.
Не работает проверка
$(this).next('ul').length
возвращает ноль.
В других браузерах возвращает 1.
Тег ul за тегом li существует. Вот код html
<li class="element-1"><a href="#">Машины</a></li>
<ul>
<li><a href="#">Третий уровень</a></li>
<ul>
<li><a href="#">Тойота</a></li>
<li><a href="#">Тойота</a></li>
<li><a href="#">Тойота</a></li>
</ul>
<li><a href="#">Пежо</a></li>
<li><a href="#">Ауди</a></li>
</ul>
Располагается сразу за ним, но почему-то не срабатывает. Может у кого-то есть соображения на этот счет?
Почему-то IE считает последующим элементом следующий li с таким же стилем, а не ul. Может это быть из-за того, что ul по умолчанию display:none ?