2013-10-02 202 views
0

我只是在div的顶部显示三角形,如下例所示:http://jsfiddle.net/yuvaraj_b/wPWDm/19/如何使用jquery更改css属性

我要为MENU FOUR三角形显示在右侧而不是左侧。

这不是工作:

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

我怎样才能解决这个问题,以便它检测到这一类,并改变left了现在的位置。

+0

请在你的问题相关的HTML。 –

+0

如果其中任一答案解决了您的问题,请标记解决方案,谢谢。 – Ennui

回答

5

伪元素如:after不会在DOM存在,因此不能由jQuery选择字符串进行定位。

通常你可以通过使用CSS类完成同样的事情和addClassremoveClass(或者,如果你打算在代码执行后切换回toggleClass)jQuery方法 - 这将允许你动态地更改创建CSS伪元素。因此,不是直接通过jQuery操纵psuedo元素的CSS,而是为您的a元素编写一个CSS类,该元素具有更新后的a:after psuedo元素的CSS,并在需要移动三角形时切换该类。

2

改为添加父元素的类,然后根据该新类指派静态CSS样式。不能直接通过JavaScript定位到:after

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

CSS:

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