最近在工作中使用easy ui做東西,然后發現了一些不可思議的現象,筆記一下,前事不忘后事之師!
事故現場:
????增加頁面和修改頁面是分離的兩個jsp文件.
????在頁面加載時會用jquery去控制一些數據加載和一些邏輯.理論上來說不希望增加頁面和修改頁面
????互相干擾.
????單獨拿增加模塊測是正常的.加載修改頁面后再使用增加頁面就會發現增加頁面功能不正常.
????之后通過瀏覽器檢查發現使用jquery通過類選擇器選中的dom對象的確是不正常的.經排查發現增加
????頁面和修改頁面是用到相同的class,而用jquery獲取對象時正是用此class獲取,以致增加頁面功能不
????能正常使用.
處理方案:
????修改其中一個頁面與另外一個頁面相同的類名以作區分,以防在增加頁面js選擇dom對象時獲取到修改頁面.
根本原因:
????easy ui dialog 是通過主頁面上的div 對象加載子頁面實現的.在dialog加載時會把子頁面dom對象加載到主頁面上,dialog關閉時實際上是把div隱藏,而不是銷毀dom對象,以致在關閉dialog后在主頁面依然能獲取到子頁面上我們不希望出現的dom對象.也就是說在加載修改dialog之后我們在增加頁面上依然可以獲取到修改頁面上的資源,同樣,在加載增加dialog后在修改頁面上也可以獲取增加頁面的資源,這只是一個加載順序的問題.所以出現了一些不可思議的現象.以此謹記.
轉載于:https://blog.51cto.com/kingstar/1946217