我只是在div上显示三角形,如下例所示:http://jsfiddle.net/yuvaraj_b/wPWDm/19/。
我希望MENU FOUR
的三角形显示在右侧而不是左侧。
这不起作用:
$(this).find(".dropdown ul li:first-child > a:after").css( "left", "300px" );
如何解决此问题,以便检测此类并更改left
的位置。
答案 0 :(得分:5)
:after
等Psuedo元素在DOM中不存在,因此不能被jQuery选择器字符串作为目标。
通常你可以通过使用CSS类和addClass
和removeClass
(或toggleClass
来完成同样的事情,如果你打算稍后在代码执行中将其切换回来)jQuery方法 - 这将允许您动态更改创建psuedo-element的CSS。因此,不是通过jQuery直接操作psuedo元素的CSS,而是为a
元素编写一个CSS类,该元素具有a:after
psuedo元素的更新CSS,并在三角形需要时切换该类被移动。
答案 1 :(得分:2)
添加父元素的类,并根据该新类分配静态CSS样式。 JavaScript无法直接定位:after
。
$(this).find(".dropdown ul li:first-child > a").addClass('moved');
CSS:
.dropdown ul li a.moved:after {
left: 300px;
}