【easyui】開啟的tab頁同頁面引數不同頁面內容不重新整理

Mr-Wanter發表於2019-01-09

初始載入tab頁面方法:

function addTab(opts) {
    var t = $('#mainTabs');
    if (t.tabs('exists', opts.title)) {
        t.tabs('select', opts.title);
    } else {
        t.tabs('add', opts);
    }
}

問題:噹噹前頁面已載入過後,再次載入同title的時候頁面不會被重新整理,但是此時頁面載入href已經更改

初步修改:只要當前title的tab頁面開啟過並存在就重新整理

//不論載入過的頁面是否翻頁或其他操作,只要存在就重新整理
function addTab(opts) {
    var t = $('#mainTabs');
    if (t.tabs('exists', opts.title)) {
        t.tabs('select', opts.title);//選中開啟的頁面
        var selTab = t.tabs('getSelected');//獲取選中頁面的物件
        t.tabs('update', {
            tab: selTab,
            options: {
                href:opts.href
            }
        });
        selTab.panel('refresh');
    } else {
        t.tabs('add', opts);
    }
}

最後修改:當前title的tab頁面開啟過並存在且同一href就選中,當href不同(包括引數),則重新整理開啟的同title的tab頁面

//新增tab頁
//頁面存在並不需要重新整理,則直接選中
//頁面存在但href(引數)不同,則選中頁面並重新整理
//頁面是否存在的依據是tab頁的title是否已經建立
function addTab(opts) {
    var flg=0;
    var t = $('#mainTabs');
    if (t.tabs('exists', opts.title)) {
        //此時判斷href引數是否一致,一致就不處理,避免開啟的tab頁翻頁後重新選中會重新整理
        var allTabs = mainTabs.tabs('tabs');
        $.each(allTabs, function() {
            var opt = $(this).panel('options');
            if(opt.href == opts.href){
                t.tabs('select', opts.title);
                flg=1;
            }
        });
        if(flg==0){
            t.tabs('select', opts.title);
            var selTab = t.tabs('getSelected');
            t.tabs('update', {
                tab: selTab,
                options: {
                    href:opts.href
                }
            });
            selTab.panel('refresh');
        }
    } else {
        t.tabs('add', opts);
    }
}

 

相關文章