Во-первых, я знаю, что n-й ребенок не компилируется в IE. Поэтому мне придется использовать jQuery или Selectivizr, чтобы сделать nth: child работать в IE (или есть ли другой способ?).
Вот ссылка на jsfiddle http://jsfiddle.net/kncdM/. 9-й 10-й и 11-й теги UL должны быть перемещены, чтобы предотвратить их переполнение.
Как мне это сделать?
Я попытался использовать jQuery для этого, но, похоже, он не работает. Я использовал следующий код
$( document ).ready(function() {
$("ul:nth-child(9) li:hover ul").addClass("nth-child9");
});
с добавлением следующего CSS:
#menu .nth-child9
top: initial;
bottom: -60px;
Может кто-то пролить свет на то, как получить следующий код, работающий в IE, пожалуйста. Спасибо
Это очень старая должность, но она была восстановлена путем редактирования marc_s (очистка орфографии и т.д.). Я все равно дам ответ, потому что это сайт Q & A в конце концов.
Как я уже сказал в комментариях, имеет смысл добавить класс в nth-child при загрузке, а затем написать свой CSS соответственно. Семантически это просто, и это позволяет вам писать только одну функцию addClass, а не присоединять обработчик событий.
JQuery
$("ul:nth-child(9)").addClass("nth-child9");
CSS
ul.nth-child9 li:hover ul {
top: initial;
bottom: -60px;
}
$('ul:nth-child(9) li').on('hover', 'ul', function() {
$(this).addClass("nth-child9");
});
Но если все, что вы делаете, это добавление двух деклараций стиля, почему бы просто не использовать CSS?
ul:nth-child(9) li:hover ul {
top: initial;
bottom: -60px;
}
$('ul').get(9).find('li').on( ....
api.jquery.com/get
:hover
не имеет смысла в селекторе jquery.