0

我只是在 div 顶部显示三角形,如下例所示:http: //jsfiddle.net/yuvaraj_b/wPWDm/19/

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

这不起作用:

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

我该如何解决这个问题,以便它检测到此类并更改left.

4

2 回答 2

5

DOM 中不存在诸如此类的伪元素:after,因此无法被 jQuery 选择器字符串定位。

通常你可以通过使用 CSS 类和 jQuery 方法(或者如果你计划稍后在代码执行中将其切换回来)来完成同样的事情addClass-removeClasstoggleClass将允许你动态更改创建伪元素的 CSS。因此,与其直接通过 jQuery 操作伪元素的 CSS,不如为您的a元素编写一个 CSS 类,该类具有更新的a:after伪元素 CSS,并在需要移动三角形时切换该类。

于 2013-10-02T13:57:13.573 回答
2

改为添加父元素的类,并基于该新类分配静态 CSS 样式。:afterJavaScript 不能直接定位。

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

CSS:

.dropdown ul li a.moved:after {
    left: 300px;
}
于 2013-10-02T13:59:14.367 回答