關(guān)于jQuery EasyUI 中刷新Tab選項(xiàng)卡后一個(gè)頁面變形的解決方法
書寫jQuery EasyUI Tab 樣例時(shí),如果刷新前面的Tab 選項(xiàng)卡,某一個(gè)Tab 選項(xiàng)卡里面的頁面布局變亂。如下面圖片所示:
剛開始打開時(shí)頁面布局正確:
此時(shí)我們?cè)诘诙€(gè)選項(xiàng)卡里面,點(diǎn)擊第一個(gè)頁面的刷新按鈕,一直刷新,然后切換回來再看看頁面,如下圖:
但是首頁選項(xiàng)卡的頁面是正常的。
為了便于解釋說明,這里用第一個(gè)選項(xiàng)卡代表 “首頁”,第二個(gè)選項(xiàng)卡代表”子菜單10”
出現(xiàn)這種情況的問題根本原因在于,你在第二個(gè)選項(xiàng)卡里面,點(diǎn)擊其它第一個(gè)選項(xiàng)卡刷新按鈕時(shí),其實(shí)刷新的時(shí)第二個(gè)選項(xiàng)頁面內(nèi)容,當(dāng)你鼠標(biāo)離開你第一個(gè)選項(xiàng)卡刷新按鈕時(shí) ,此時(shí)才選中了第一個(gè)選項(xiàng)卡,而這時(shí)候第二個(gè)選項(xiàng)卡還沒有渲染完畢,才導(dǎo)致出現(xiàn)這樣的情況。驗(yàn)證過程,這是使用的是驗(yàn)證選項(xiàng)卡的title.
打開兩個(gè)選項(xiàng)卡,一個(gè)”首頁”,一個(gè)”子菜單10”選項(xiàng)卡,切換到”子菜單10”選項(xiàng)卡,然后點(diǎn)擊”首頁”選項(xiàng)卡的刷新按鈕,彈出的結(jié)果如下的圖,可見在鼠標(biāo)點(diǎn)擊的過程中,tab 里面選中的還是”子菜單10”選項(xiàng)卡,并不是我們看到的”首頁”選項(xiàng)卡。

出現(xiàn)上圖問題的錯(cuò)誤代碼如下:
/* title表示tab選項(xiàng)卡的標(biāo)題 */
function refeshCurrentTab() {
var tabPanel = $('#tabContainer');//存放tab選項(xiàng)卡的容器
var tab = tabPanel.tabs('getSelected');
//alert("tab選項(xiàng)卡選中按鈕的title:"+tab.panel('options').title);
var url = $(tab.panel('options').content).attr('src');
tabPanel.tabs('update', {
tab: tab,
options: {
content: createFrame(url) //創(chuàng)建Frame標(biāo)簽
}
});
};
function createFrame(url) {
return '<iframe src="' + url + '" frameborder="0" style="height:100%;width:100%;"></iframe>';
};
找到問題的根本所在,那么在上述方法中,只需要刷新時(shí)傳入刷新按鈕那個(gè)tab選項(xiàng)卡的標(biāo)題,選中這個(gè),然后再進(jìn)行刷新操作。修改的代碼如下:
/* title表示tab選項(xiàng)卡的標(biāo)題 */
function refeshCurrentTab(title) {
var tabPanel = $('#tabContainer');
var tab = tabPanel.tabs('getSelected');
//alert("傳入的參數(shù)title:"+title+",tab選項(xiàng)卡選中按鈕的title:"+tab.panel('options').title);
var refeshTab = tabPanel.tabs("getTab", title);
if (tab != refeshTab) {
tabPanel.tabs("select", title);
tab = refeshTab;
}
var url = $(tab.panel('options').content).attr('src');
tabPanel.tabs('update', {
tab: tab,
options: {
content: createFrame(url)
}
});
};
function createFrame(url) {
return '<iframe src="' + url + '" frameborder="0" style="height:100%;width:100%;"></iframe>';
};
以上所述是小編給大家介紹的關(guān)于jQuery EasyUI 中刷新Tab選項(xiàng)卡后一個(gè)頁面變形的解決方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- jqueryUI tab標(biāo)簽頁代碼分享
- jquery-easyui關(guān)閉tab自動(dòng)切換到前一個(gè)tab
- jQuery EasyUI API 中文文檔 - Tabs標(biāo)簽頁/選項(xiàng)卡
- jQuery EasyUI Tab 選項(xiàng)卡問題小結(jié)
- Jquery Easyui選項(xiàng)卡組件Tab使用詳解(10)
- jQuery UI制作選項(xiàng)卡(tabs)
- jQuery EasyUI 選項(xiàng)卡面板tabs的使用實(shí)例講解
- 為JQuery EasyUI 表單組件增加焦點(diǎn)切換功能的方法
- Jquery組件easyUi實(shí)現(xiàn)選項(xiàng)卡切換示例
- jquery ui 實(shí)現(xiàn) tab標(biāo)簽功能示例【測(cè)試可用】
相關(guān)文章
jQuery中closest()函數(shù)用法實(shí)例
這篇文章主要介紹了jQuery中closest()函數(shù)用法,實(shí)例分析了closest()函數(shù)的功能、定義及匹配元素的各種技巧,需要的朋友可以參考下2015-01-01
jQuery實(shí)現(xiàn)手機(jī)上輸入后隱藏鍵盤功能
最近做了這樣一個(gè)功能,讓用戶輸入手機(jī)發(fā)送驗(yàn)證碼,輸完11位手機(jī)號(hào)后,自動(dòng)隱藏鍵盤。下面通過本文給大家分享實(shí)現(xiàn)方法,一起看看吧2017-01-01
快速學(xué)習(xí)jQuery插件 Cookie插件使用方法
快速學(xué)習(xí)jQuery插件中的Cookie插件使用方法,一個(gè)輕量級(jí)的cookie插件,可以讀取、寫入、刪除 cookie,感興趣的小伙伴們可以參考一下2015-12-12
jQuery學(xué)習(xí)筆記之 Ajax操作篇(一) - 數(shù)據(jù)加載
Ajax 通俗來講即不需要刷新頁面即可從服務(wù)器或客戶端上加載數(shù)據(jù),當(dāng)然這些數(shù)據(jù)的格式是多種多樣的。2014-06-06
jQuery 源碼分析筆記(3) Deferred機(jī)制
從1.5版本開始,jQuery加入了Deferred功能,讓事件處理隊(duì)列更加的完善。并用這個(gè)機(jī)制重寫了Ajax模塊。雖然還沒輪到Ajax,但是接下來的事件處理函數(shù)中牽扯到了這個(gè)機(jī)制,所以提前看這段代碼。2011-06-06
使用jquery局部刷新(jquery.load)從數(shù)據(jù)庫取出數(shù)據(jù)
jquery提供了很好的ajax交互,我這里用的是直接返回字符串,用的是jquery.load方法從數(shù)據(jù)庫取出的數(shù)據(jù)2014-01-01

