2013-04-28 125 views
0

我一直試圖使元素(A)的顯示器阻塞,當另一個元素(B)將鼠標放在它上面時,然後將其返回給沒有鼠標後離開A,這裏是我的嘗試至今:jQuery .hover更改非子元素的css

首先,這裏的HTML的一部分

.. 
<ul> 
<li class="firstli"> 
     <img class="userLogo" src="media/images/eSahara.jpg"><a href="">Configurer</a></li> 
     <li><a href="" class="clear">Supprimer</a></li> 
     <li><a href="logout">Déconnecter</a></li> 
</ul> 
     </li>      
      </ul> 
<div id="cimsgContainer"><p>Changer votre <br> image de profile</p></div> 

,現在我嘗試

<script type="text/javascript"> 
$(".userLogo").mouseenter(function(){$("#cimsgContainer").css("display","block");}); 
$(".userLogo").mouseleave(function(){$("#cimsgContainer").css("display","none");}); 
</script> 


<script type="text/javascript"> 
    $(".userLogo").hover(function(){$("#cimsgContainer").css("display","block");},function(){$(this).css("display","none");}); 
    </script> 

非常重要的注意事項:我已經做了我的研究,我發現所有的東西都是當父母徘徊時改變孩子的CSS,在我的情況下B不是A的孩子既不是B的孩子,也不是A的孩子。 B's id = #userLogo 謝謝

+3

您針對的是不存在的ID。我看到一類userLogo,但沒有和ID。 – drip 2013-04-28 19:59:40

+0

是的,我改變了它,但沒有奏效 – 2013-04-28 20:04:34

回答

1
<ul> 
<li class="firstli"> 
     <img class="userLogo" src="media/images/eSahara.jpg"><a href="">Configurer</a></li> 
     <li><a href="" class="clear">Supprimer</a></li> 
     <li><a href="logout">Déconnecter</a></li> 
</ul> 
     </li>      
      </ul> 
<div id="cimsgContainer"><p>Changer votre <br> image de profile</p></div> 
<script> 
$(".userLogo").hover(function(){ $("#cimsgContainer").css("display", "block"); }, function(){ $("#cimsgContainer").css("display", "none");}); 
</script> 

出現爲我工作。

這是你想要的嗎?

1

#target將選擇帶有id=target的元素。

.target將選擇class=target的所有元素。

您需要使用類選擇器正確定位您的圖像。 $(".userLogo")

此外,也許你想要徽標後顯示的元素,當展開時,但不顯示,否則?在這種情況下,你可以嘗試這樣的事:

$(".userLogo").hover(
    function(){$(this).next().show()}, 
    function(){$(this).next().hide()} 
); 

這裏是一個jsFiddle Demo針對該方案

或者更簡單地說: $(".userLogo").hover(function({$(this).next().toggle()});http://jsfiddle.net/3gPHR/2/