2016-10-06 90 views
-2

下一個元素,我有以下HTML:jQuery的,找到ID

<input id="A1" type="radio" name="A"> 
<label for="A1">A1 
<div class="menu" id="menu1"> 
    <img class="button" id="edit1" src="Aa.png"> 
    <img class="button" id="remove1" src="Ab.png"> 
</div> 
</label> 

<input id="A2" type="radio" name="A"> 
<label for="A2">A2 
<div class="menu" id="menu2"> 
    <img class="button" id="edit2" src="Aa.png"> 
    <img class="button" id="remove2" src="Ab.png"> 
</div> 
</label> 

我想對每個標籤懸停在標籤時出現的菜單。例如:當懸停在A1上時,應出現menu1。

我試着打下面的代碼:

$("label").hover(
    function() { 
    $("this").next(".menu").css("display", "inline-block"); 
    } 
); 

我試着用 「孩子」, 「下一個」, 「nextAll」,沒有運氣選擇菜單。

+6

將'$(「this」)'改爲'$(this)'。 – Mohammad

+0

爲什麼菜單div在標籤內? – rapidoodle

+0

你可以用CSS而不是使用事件處理程序來實現這一點:'label:hover .menu {display:inline-block; }' –

回答

1

.menu元素不是label下一個元素(兄弟姐妹),這是一個孩子元素。所以,你要children(或find即使能夠更深),不next

$("label").hover(
    function() { 
    $(this).children(".menu").css("display", "inline-block"); 
    } 
); 
+2

你忘了刪除引號。 –

0

在這裏,您使用this作爲一個字符串,但它是一個參考和菜單是label 孩子因此,嘗試這樣的。

$(this).children(".menu").css("display", "inline-block"); 
0

正如@Mohammad所說,它應該是這個,而不是「this」。 另外,我應該使用孩子,就像@Era說的那樣。