我遇到了與正在構建的站點有關的問題。JQuery未在IE8中運行
該網站的一個特點是要求提供信息的調查。一種類型的問題是「視覺選擇問題」,顯示可點擊的圖像。這些圖像對應於(隱藏)複選框,記錄他們的答案。被檢查的項目被給予邊界,這爲我們的用戶帶來了不錯的視覺體驗。
在IE8的用戶,但不能點擊圖片 - 標籤內<img>
標籤是無法點擊在IE8,和:checked
CSS選擇器無法使用。我們的利益相關者對IE8的體驗有所降低很好,但它必須爲他們工作。爲了讓IE8的體驗優雅地退化,我將調查包裝在僅限IE8的div(使用條件註釋,以便只有IE8及以下版本才能獲得),並寫了一行或兩行CSS,以便複選框可以可見。
不幸的是,複選框位於浮動元素之外,因此與元素所在的位置相距很遠。
我寫了一些jQuery,將分離複選框,並重新將它們附加在浮動元素內。我將這個jQuery包裝在相同的條件註釋中,在IE11的開發工具欄啓用的IE8模式下測試它,並將代碼推送到服務器。
它在真正的IE8上失敗。代碼(包括包含在條件註釋中的jQuery)適用於IE11的模擬IE8,但不適用於真實的IE8。
我能做些什麼來解決這個問題?
這是一個jsFiddle,它顯示了一個調查問題的簡化版本。 javascript面板中的代碼被封裝在最終頁面上的<!--[if lte IE 8]>
標籤中。
這並未完全解決問題。我不得不訴諸這些黑客的原因是因爲IE8也不支持我用來爲所選答案設置邊界的CSS技術。缺乏複選框和邊框,用戶無法知道他們的點擊是否做了任何事情。 – Jeff
然後編寫一個簡單的jQuery腳本,該腳本根據選定的複選框將元素應用於元素,然後設置該類的樣式以顯示邊框。應該使用有條件的黑客作爲最後的手段。 – Axel