2011-11-29 34 views
-3

我想添加一個事件監聽器來響應盤旋在一個div和改變它的顏色。我不得不使用addEventListener ...這是一項任務。我不確定那將會怎樣?是否可以使用AddEventListener爲懸停/輸入事件添加偵聽器?

就像我可以用這樣的:

myButtonItem.addEventListener("click",myrespondfunction,false) 

分配一個click事件處理程序myButtonItem ......但沒有"hover",我可以到位的click

+1

如果您希望得到答案,您將不得不在這裏添加更多細節。 – JaredPar

+0

這是一個通用的問題...大聲笑 – antonpug

+0

你做了什麼努力來解決這個問題?到目前爲止,你有什麼?你知道如何創建一個'div'嗎?你知道如何將樣式應用到'div'嗎? – RightSaidFred

回答

1

有幾種方法可以實現懸停效果。最好的辦法是使用CSS選擇器:

.myDiv { 
    background-color: red; 
} 
.myDiv:hover { 
    background-color: green; 
} 

...帶班myDiv一個div會顯示一個綠色的背景,當鼠標進入格。

第二種方法是使用javascript,但考慮到:hover僞選擇器可用並且得到廣泛支持,這對於簡單地更改背景顏色來說是極端矯枉過正。

你可以選擇的事件有:

的mouseenter - 當鼠標進入一個元素觸發。不會冒泡,目前不支持Firefox,Safari或Chrome,though it is in the spec and has been for some time

mouseleave - 當鼠標離開元素時觸發。不起泡,目前不支持Firefox,Safari或Chrome,though it is in the spec and has been for some time

鼠標懸停 - 當鼠標進入一個元件燃燒,氣泡向父元素

鼠標移開 - 當鼠標離開元件燃燒,氣泡向父元素

退房http://www.quirksmode.org/js/events_mouse.html有關的詳細信息與這些事件有關的具體怪癖。由於與多個事件處理程序相關的權重(這就是爲什麼不建議使用JavaScript來處理CSS可以處理的內容的原因......您爲頁面添加了不必要的權重),因此您可能需要考慮使用事件委派處理這些事件。請參閱http://www.sitepoint.com/javascript-event-delegation-is-easier-than-you-think/瞭解入門級文章,解釋概念並檢查一些優缺點。例如,如果計劃將此添加到頁面上的所有a標記中,我將毫無疑問地使用委託。

就實際添加事件而言,addEventListener不是跨瀏覽器。有關該問題的信息,請參閱文章http://www.quirksmode.org/js/events_advanced.html,以及討論不同並提供跨瀏覽器解決方法方法的MDN documentation

相關問題