Как изменить свойство css с помощью jquery

0

Я просто показываю треугольник сверху div, как показано в этом примере: http://jsfiddle.net/yuvaraj_b/wPWDm/19/.

Я хочу, чтобы треугольник для MENU FOUR отображался справа, а не слева.

Это не работает:

$(this).find(".dropdown ul li:first-child > a:after").css( "left", "300px" );

Как я могу исправить это, чтобы он обнаружил этот класс и изменил положение left.

  • 0
    Пожалуйста, включите соответствующий HTML в ваш вопрос.
  • 0
    Если любой из этих ответов решил вашу проблему, пожалуйста, отметьте решение, спасибо.

2 ответа

5

Psuedo-элементы, такие как :after не существует в DOM и поэтому не могут быть нацелены на строки селектора jQuery.

Обычно вы можете выполнить одно и то же, используя классы CSS и addClass и removeClass (или toggleClass если вы планируете переключать его позже при выполнении кода). Методы jQuery - это позволит вам динамически изменять CSS, который создает psuedo-элемент, Таким образом, вместо того, чтобы непосредственно манипулировать CSS в псевдо элемента через JQuery, вместо того, чтобы написать класс CSS для вашего a элемент, который имеет обновленный CSS для a:after псевдо элемента и переключить этот класс, когда треугольник должен быть перемещен.

2

Вместо этого добавьте класс родительского элемента и назначьте статические стили CSS на основе этого нового класса. :after того, как JavaScript не может быть нацелен непосредственно.

$(this).find(".dropdown ul li:first-child > a").addClass('moved');

CSS:

.dropdown ul li a.moved:after {
    left: 300px;
}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню