2012-09-04 21 views
3

我有本期:我通过CSS定义当前角色的div元素使用:之前通过jQuery

.divElement:before { 
    background-image: url(../images/triangle.png); 
    background-repeat: no-repeat; 
    content: ""; 
    height: 20px; 
    left: 62%; 
    margin: 0 0 0 -50px; 
    position: absolute; 
    top: -20px; 
    width: 100px; 
} 

.divElement{ 
    background: none repeat scroll 0 0 #FFF8D6; 
    border-radius: 10px 10px 10px 10px; 
    color: black; 
    font: 1em/1.4 Cambria,Georgia,sans-serif; 
    margin: 0px 500px 3em;  
    padding: 15px; 
    position: relative; 
    text-align: center; 
} 

我创造了这个元素动态使用jQuery:$('<div class="divElement"><p><strong></strong></p></div>').appendTo(....)这正常工作。使用jQuery时,问题就变成了,我尝试动态改变backgroung-imagedivElement之前的内容(这是我在CSS定义与:before

我想是这样的background-imagetop属性,但不工作:

$('.divElement:before').css('background-image', 'url(../images/triangle_reverse.png)'); 

我该怎么做?谢谢大家!

回答

0

我觉得你最好的解决办法是保持在CSS样式为这一个(as in this answer)和简单的使用功能addClass jQuery中。这里有一个例子:

.divElement:before { 
    background-image: url(../images/triangle.png); 
} 

.divElement.reverse:before { 
    background-image: url(../images/triangle_reverse.png); 
} 

然后在jQuery的,所有你需要的是添加类reverse这样的:

$('.divElement').toggleClass("reverse"); 

$('.divElement').addClass("reverse"); 

,你甚至可以轻松地之间,并且是使用切换关闭状态

+0

thankssss..this work incorrectyyyyy !!!!! – user1645419

+0

很酷,很高兴提供帮助;) –

+0

请注意:伪类选择器在IE 8之前的IE版本中不起作用。 – Remo

1

以下将搜索类别为.divElement的所有节点,取出在之前出现的相应元素并更改它们的背景图像。那是你想要完成的吗?

$('.divElement').prev().css('background-image', 'url(../images/triangle_reverse.png)'); 
+0

感谢您的即时回复,是的,我尝试更改出现在...之前的元素的背景图像和顶级属性...但仍然不起作用... – user1645419