日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

easyui 页签

發(fā)布時間:2023/12/13 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 easyui 页签 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
  • 昨天開始搭后臺框架,到晚上的時候遇到了一個現(xiàn)在覺得挺可笑但是當時一直很糾結(jié)很糾結(jié)的問題,這個問題剛剛解決出來,把它拿出來說說,讓自己長點兒記性,希望大家不要犯我這個錯誤啊??
  • 在backstage.jsp頁面中我寫了一個方法,用于在指定位置添加面板(id為msg的地方)??
  • function?addTab(t,h){??
  • ????if($('#msg').tabs('exists',t)){??
  • ????????$('#msg').tabs('select',t);??
  • ????}else{??
  • ????????$('#msg').tabs('add',{??
  • ????????????????title:t,??
  • ????????????????href:h??
  • ????????});??
  • ????}??
  • }??
  • 在body方法中有一個超連接??
  • <a?id="admins">查看管理員信息</a>??
  • 方法調(diào)用??
  • $("#admins").click(function(){??
  • ????????????addTab('管理員信息','${?pageContext.request.contextPath}/backstage/admins/findAdmins.jsp');??
  • ????????});??
  • findAdmins.jsp??
  • <head>??
  • <script>??
  • $(function(){??
  • ????????????alert("------");??
  • });??
  • </script>??
  • </head>??
  • <body>??
  • ????這是findAdmins.jsp頁面,事件觸發(fā)啦??
  • <body>??
  • 我遇到的問題就是,當添加面板時,findAdmins.jsp中body中的內(nèi)容都會顯示,但head中的方法就是不執(zhí)行,剛開始覺得是路徑問題,但如果是路徑問題的話為什么body中的內(nèi)容能夠正確顯示呢???
  • 這個問題想得我頭疼啊,到底是為什么呢,就是想不明白??
  • 下面我來回答一個我自己的這個問題吧,其發(fā)生這種事情的主要原因還是因為我很多東西都不知道,看的東西也比較少。??
  • Href方式加載數(shù)據(jù)有幾個特點:??
  • 第一個就是被加載的頁面只有body元素內(nèi)部的內(nèi)容才會被加載,也就是jQuery的ajax請求的只是html片段。(各位包括我自己,這種問題一定要注意啊)還有就是在加載遠程url時有遮罩效果,也就是“等待中……”效果,用戶體驗較好。???
  • 但是當加載的頁面布局較為復雜,或者有較多的js腳本需要運行的時候,編碼往往就需要謹慎了,容易出問題。下面說一些在網(wǎng)上找到的一個href的常見問題??
  • 1.href只加載目標URL的html片段??
  • 這個特性是由jQuery封裝的ajax請求處理機制所決定的,所以目標URL頁面里不需要有html,head,body等標簽,即使有這些元素,也會被忽略,所以放在head標簽里面的任何腳本也不會被引入或者執(zhí)行。??
  • 2.短暫的頁面混亂:??
  • href鏈接的頁面比較復雜的時候,easyui對其渲染往往需要一個較長的過程,這時候,加載進來的html片段毫無布局可以,過一會自動會好,這時候easyui已經(jīng)完成對它的渲染。如何避免這個混亂的過程呢,還得靠easyui的一個基礎插件——解析器(Parser)。??
  • Parser有個onComplete事件,這個事件就是指easyui對頁面完成渲染時觸發(fā),這樣思路就很清晰了:用一個div遮罩住讓被加載進來的html片段,在onComplete事件中,讓這個div淡出,這時候渲染好的html片段就能美人出浴了,同時還整了個等待中的效果,一舉兩得。這樣要做兩件事:??
  • 第一是在要加載的html片段中放一個遮罩用的div:??
  • <div?id='loading'?style="position:absolute;z-index:1000;top:0px;left:0px;width:100%;height:100%;background:#DDDDDB;text-align:center;padding-top:?20%;">??
  • ????<image?src='style/images/loading.gif'/>???
  • </div>??
  • 第二是在被加載的html片段尾部處理相關事件:??
  • <script>??
  • ????function?show(){??
  • ????????$("#loading").fadeOut("normal",?function(){??
  • ????????????$(this).remove();??
  • ????????});??
  • ????}??????
  • ????var?delayTime;??
  • ????$.parser.onComplete?=?function(){??
  • ????????if(delayTime)???
  • ????????????clearTimeout(delayTime);??
  • ????????delayTime?=?setTimeout(show,500);??
  • ????}??
  • </script>??
  • 需要注意的是,如果多個tab頁面都使用了onComplete事件,當前定義的會覆蓋之前定義的。其實每次easyui渲染完成均會調(diào)用onComplete事件,所以每打開一個包含easyui控件的tab頁,onComplete事件就會被調(diào)用。??
  • 3.html片段的easyui組件相關腳本莫名地報錯:??
  • 其實這個現(xiàn)象是跟第一個現(xiàn)象的原因一樣的,easyui完成對html片段渲染需要一定的時間,頁面越復雜,耗時越長,這時候難以避免html存在的腳本存在對easyui某些插件的調(diào)用,比如datagrid等,這個時候就會報錯,解決方案同上,將這些腳本放到onComplete事件里處理,也就保證了渲染完成前,不會被執(zhí)行。??
  • 4.放在window里面表單驗證的提示信息會亂串:??
  • 這個現(xiàn)象應該是插件自身的bug,對位置的計算沒有考慮到這些特殊的事情,解決方式可以投機取巧,在打開window后,讓表單不符合驗證的input獲得焦點就可以了。??
  • content方式加載數(shù)據(jù)的特點:??
  • 1.??比較靈活,你可以在腳本里面拼寫html代碼,然后賦值給tab的content屬性,不過這種寫法會使得代碼易讀性變差。???
  • 2.??可以把iframe賦給content,把一個iframe嵌入也就沒有什么不能完成的了。???
  • 3.??使用iframe會造成客戶端js重復加載,浪費資源,比如說你主頁面要引用easyui的庫,你的iframe也要引用,浪費就產(chǎn)生了。???
  • 希望能對大家有點兒幫助,不要再犯這種錯誤啦!!
  • 轉(zhuǎn)載于:https://www.cnblogs.com/Struts-pring/p/5138728.html

    總結(jié)

    以上是生活随笔為你收集整理的easyui 页签的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。