2010-03-11 144 views
3

好吧我有6個按鈕,即時嘗試有一個jQuery的偵聽器,當你懸停在6個按鈕之一,它改變了類。即時通訊使用一個循環做到這一點,我的繼承人代碼:jquery循環懸停按鈕

$(document).ready(function() { 
for($i=1;$i<7;$i++) { 
     $('#button'+i).hover(function() { 
     $(this).addClass('hovering'); 
     }, function() { 
     $(this).removeClass('normal'); 
     }); 
} 
}); 

每個按鈕都有「buttonx」(即x是一個數字)

幫助的ID?

+0

這將有助於查看您的HTML。有幾種方法可以達到您想要的效果,但根據您的情況,可能會有一個非常清晰和簡潔的方法。 – 2010-03-11 18:47:44

+0

你必須是perl/php程序員。你不需要在變量前加'$':) – ryeguy 2010-03-11 18:52:31

回答

1

您不應該需要使用循環。只需使用id上的startsWith選擇器屬性即可。此外,您可能想要更改應用/刪除類的方式,以確保沒有課程同時具有正常和懸停。

$('[id^=button]').hover(function() { 
    $('[id^=button]').removeClass('hovering'); 
    $(this).addClass('hovering').removeClass('normal'); 
}, 
function() { 
    $(this).removeClass('hovering').addClass('normal'); 
}); 
+0

確定感謝guyys – 2010-03-11 18:48:20

2

您不需要遍歷一堆生成的ID。你可以簡單地給他們每個人的類「正常」和:

$("button.normal").hover(function() { 
    $(this).addClass("hovering"); 
}, function() { 
    $(this).removeClass("hovering"); 
}); 

「button.normal」將返回所有按鈕的集合與「正常」類,所以沒有必要爲一個循環,懸停事件將應用於集合中的每個元素。

+0

請注意,他可能沒有使用'button'標籤..他的代碼使用'button 'id。 – 2010-03-11 18:59:39

1

請注意,karim79的答案是一個好方法。

在你的代碼中,你聲明循環計數器爲'$ i',但試圖引用'我'。它應該是$('#button'+ $ i)