2012-10-02 51 views
1

我必須調試一個菜單,當用戶將鼠標懸停在其中的每個元素上時發生「擺動」。這隻發生在Internet Explorer中。在其他瀏覽器中,如果我正在查看標記,它將隨着事件觸發或應用樣式而更新,您可以在樣式跟蹤中看到它。 IE不這樣做,如果它可以我不知道。有什麼方法可以在瀏覽中查看樣式/標記的更新,在標記/樣式視圖中生活,同時與頁面交互?如何在Internet Explorer的菜單中調試「擺動」

+1

您可以發佈[SSCCE](http://sscce.org/)嗎? –

+1

點擊[F12](http://msdn.microsoft.com/en-us/library/ie/gg589507(v = vs.85).aspx) – David

+0

F12只打開調試器。除非您在調試器中按下刷新按鈕,否則HTML視圖將不會刷新。具有諷刺意味的是它刷新整個頁面的同一個關鍵......並且問題隨之而來。 – QueueHammer

回答

0

所以我的問題是,當用戶將鼠標放在每個項目上時,菜單項會「擺動」。問題是這隻發生在Internet Explorer中。在其他瀏覽器允許您觀看標記和樣式的「實時」視圖的情況下,IE只允許您通過單擊視圖上方的按鈕或使用F5來刷新該視圖。這使事情變得複雜,因爲如果你在瀏覽器F5上瀏覽器將重新加載頁面。雖然如果您將鼠標移出並刷新菜單項,但單擊刷新按鈕時它已經丟失。

我的解決方案是分離由mouseover和mouseout事件調用的函數,這些函數被動態地命名爲垃圾。一旦我有他們被稱爲我可以打電話給他們,並觸發我自己的動作鼠標。然後,我可以刷新標記視圖並查看正在更改的樣式,應用樣式。

原來鼠標懸停的事件添加了一種刪除元素頂部和底部填充的樣式。在其他所有瀏覽器中,盒子模型都被渲染出來,所以這並不重要。在IE中,它意味着當您移動菜單時,所有內容都會「擺動」。

得愛傳統代碼...和IE。

1

這聽起來非常像一個古老的白色空間的錯誤。菜單是從無序列表形成的嗎?如果是這樣,你是否有回車之間的每個列表項目(即每個< li> </li>是在一個單獨的行)?

如果是這樣,請嘗試刪除所有空白(所有列表項都在一行上)。

+0

這是一個很好的建議。這發生在另一個項目上,我想到的第一件事情就不是平時。 – QueueHammer