我有一個ID爲「button」的div。當我懸停時(不使用CSS懸停選擇器),我試圖將其背景更改爲藍色。Javascript addEventListener - 用於創建鼠標懸停效果?
var item = document.getElementById("button");
item.addEventListener("mouseover", func, false);
function func()
{
var item = document.getElementById("button");
item.setAttribute("style", "background-color:blue;")
}
然而,這只是設置項的顏色爲藍色,當我徘徊,但它不重置爲白色後,我移動鼠標了。我該如何解決這個問題? (順便說一句,mouseenter和mouseleave不會與這看起來工作)。
啊......太好了!我在div裏面有一張圖片,它認爲「out」,有什麼方法來掩飾它,所以它仍認爲它在盒子內? – antonpug
是的,mouseover和mouseout事件也會捕獲所有來自子項目的事件(並且它們會冒泡)。在你的函數中,你必須比較事件參數的relatedTarget(W3C)或Target/fromTarget(IE)屬性。看看這個鏈接瞭解更多信息:http://www.quirksmode.org/js/events_mouse.html#relatedtarget – AndrewR
捕獲父容器並且不處理子元素中的任何內容是很多工作。除非你有任何特定的原因,否則你可以通過使用jQuery的'hover()'函數來簡化你的代碼。 – AndrewR