2012-07-11 18 views
0

我有一個內容管理工具,它使用iframe在頁面上堆疊內容塊。系統會將每個塊的內容加載到iframe中,同時還有一個封面和一些用於編輯功能(編輯,刪除,複製和移動)的按鈕。封面只出現在mouseover上(使用CSS:hover僞類),因此頁面的內容看起來完全像它將存在的內容,除非用戶將鼠標懸停在他們想要編輯的塊上。這一切工作正常。有沒有辦法強制瀏覽器的Window對象重新評估鼠標的位置?

問題出在移動塊。我開發了一個移動塊的拖放系統。用戶將鼠標移動到移動圖標上,然後將該塊拖動到所需的位置。在mousedown上,塊本身(整個iframe)被隱藏(display:none),並被替換爲相同形狀的陰影div,然後拖動它。如果用戶選擇將塊放在新的位置,則一切正常,但如果它們放在其他地方,操作將被取消。陰影已被刪除,並且原始的iframe被重新顯示。

現在的問題是:當原始iframe被重新顯示時,它仍然認爲鼠標懸停在它上面,並且所有隻顯示在:hover僞類下的圖層都顯示出來(在FireFox和IE中 - 不在Chrome中)。將鼠標移動到塊上,然後再次重置iframe狀態,但我正在尋找一種方法來強制iframe重新評估鼠標位置,而無需用戶執行任何操作。

一個解決方案是用鼠標事件和指定的類來替換僞類的使用,但我想知道是否有其他解決方案。

回答

0

除非你只針對最新的瀏覽器(在較老的IE瀏覽器中,除了錨點以外沒有native:hover事件),你應該跳過:hover方法並且用你正確地假設是解決方案 - 意思是使用css類和js事件來確定塊的狀態。

相關問題