2009-10-28 30 views
19

我想要一個簡單的html表格,突出顯示一行作爲用戶鼠標在它上面。不幸的是,CSS懸停項目不適用於IE。這讓我在javascript中模擬它。我可以使用onmouseenteronmouseoveronMouseOver和onMouseEnter之間的區別

他們之間有什麼區別,我應該使用哪一個?

回答

31

首先,onmouseenter是特定於IE的。在其他瀏覽器中不起作用,除非您使用可以simulate此事件的jQuery。

其次,當鼠標進入元素的邊界時,將觸發onmouseenteronmouseover。但是,如果鼠標在第一個元素內輸入子元素,則onmouseenter不會再次觸發(不會冒泡)。

+3

更新:火狐開始支持'在10版(2012年1月)和Chrome onmouseenter'開始支持它版本30(2013年10月)([source](https://developer.mozilla.org/en-US/docs/Web/Events/mouseenter))。除了[此webkit bug](https://bugs.webkit.org/show_bug.cgi?id=18930)之外,我無法找到Safari的信息,該修復在2013年4月提交。因此'onmouseenter'應該可以工作現在主要瀏覽器的大多數用戶。 – ecraig12345 2015-01-14 06:11:51

2

與onmouseover事件不同,onmouseenter事件不會冒泡。換句話說,當用戶將鼠標指針移動到對象所包含的元素上時,onmouseenter事件不會觸發,而onmouseover會觸發。

我總是使用onmouseover。我使用onmouseover出於同樣的目的(突出顯示一行)。

0

你可能只需添加在IE的所有元素:hover支持也不遺餘力自己的一些編碼:
嘗試csshover.htc

+0

css行爲很慢。他們每次運行一個線程都會停止執行。嘗試從htc中添加一些日誌記錄到js中來查看。 如果你只是想創造一個懸停效果。我們使用:除IE6以外的其他所有人都可以使用的懸停。死於IE6。我認爲這是可以接受的,因爲懸停效果只是一件好事。 – 2010-03-04 19:21:58