Я просто показываю треугольник сверху div, как показано в этом примере: http://jsfiddle.net/yuvaraj_b/wPWDm/19/.
Я хочу, чтобы треугольник для MENU FOUR
отображался справа, а не слева.
Это не работает:
$(this).find(".dropdown ul li:first-child > a:after").css( "left", "300px" );
Как я могу исправить это, чтобы он обнаружил этот класс и изменил положение left
.
Psuedo-элементы, такие как :after
не существует в DOM и поэтому не могут быть нацелены на строки селектора jQuery.
Обычно вы можете выполнить одно и то же, используя классы CSS и addClass
и removeClass
(или toggleClass
если вы планируете переключать его позже при выполнении кода). Методы jQuery - это позволит вам динамически изменять CSS, который создает psuedo-элемент, Таким образом, вместо того, чтобы непосредственно манипулировать CSS в псевдо элемента через JQuery, вместо того, чтобы написать класс CSS для вашего a
элемент, который имеет обновленный CSS для a:after
псевдо элемента и переключить этот класс, когда треугольник должен быть перемещен.
Вместо этого добавьте класс родительского элемента и назначьте статические стили CSS на основе этого нового класса. :after
того, как JavaScript не может быть нацелен непосредственно.
$(this).find(".dropdown ul li:first-child > a").addClass('moved');
CSS:
.dropdown ul li a.moved:after {
left: 300px;
}