最近在工作中使用easy ui做東西,然后發現了一些不可思議的現象,筆記一下,前事不忘后事之師!

事故現場:

????增加頁面和修改頁面是分離的兩個jsp文件.

????在頁面加載時會用jquery去控制一些數據加載和一些邏輯.理論上來說不希望增加頁面和修改頁面

????互相干擾.

????單獨拿增加模塊測是正常的.加載修改頁面后再使用增加頁面就會發現增加頁面功能不正常.

????之后通過瀏覽器檢查發現使用jquery通過類選擇器選中的dom對象的確是不正常的.經排查發現增加

????頁面和修改頁面是用到相同的class,而用jquery獲取對象時正是用此class獲取,以致增加頁面功能不

????能正常使用.

處理方案:

????修改其中一個頁面與另外一個頁面相同的類名以作區分,以防在增加頁面js選擇dom對象時獲取到修改頁面.

根本原因:

????easy ui dialog 是通過主頁面上的div 對象加載子頁面實現的.在dialog加載時會把子頁面dom對象加載到主頁面上,dialog關閉時實際上是把div隱藏,而不是銷毀dom對象,以致在關閉dialog后在主頁面依然能獲取到子頁面上我們不希望出現的dom對象.也就是說在加載修改dialog之后我們在增加頁面上依然可以獲取到修改頁面上的資源,同樣,在加載增加dialog后在修改頁面上也可以獲取增加頁面的資源,這只是一個加載順序的問題.所以出現了一些不可思議的現象.以此謹記.